Possible Ps2 Emu?


Just saw your edit I was just about to say it sounds like HLE. haha
First part sounds like HLE, second part static recompilation. Lets see what the guru's have to say. :lol:
 
Thanks Na-noo. I get the basic gist of what was being said in that thread. Seems like you would want a recompiler with a bestial optimiser (or one with built-in, working, AI) :)
The instructions are translatable but the data blocks present a bigger problem. I'm not into development (now) but eons ago I used to do a bit of assembly (Z80 and 68000) so I could follow the tech-speak a bit ;) . I'm disappointed though :( I thought I had a great "original" idea muahahahaha! EDIT: Now I realise I was just "emulating" rofl!
 
Pimpsahoy said:
I am a PSP guru of sorts, I've worked on the firmwares and the hardware of almost every model of PSP inside and out. In fact I used to crack the firmware open for for money using the Pandora's battery method. Well at that I used too, I dropped off the PSP scene a while ago and came onto the pandora scene as I began to feel the restraints that the PSP hardware had even with an overclock running @333. A while back We (the psp Homebrew community) had tried to emulate the the PS2 on the PSP, we knew from the very beginning it wouldn't work, we did it for the fun. We managed to get a frame rate of about 2 on one of the early CD based PS2 games, the project was eventually dropped, there is an exponential difference between the two systems.
Hate to go OT but what do you know about hacking the PSP Go ATM? I'm considering it, if I can get some homebrew to it....
 
Last edited by a moderator:
Excuse my ignorance but couldn't the DSP be used as an FPGA of sorts? Or is it not really worth it because the bus connecting the CPU <> DSP is too slow?
 
Phawx said:
Excuse my ignorance but couldn't the DSP be used as an FPGA of sorts? Or is it not really worth it because the bus connecting the CPU <> DSP is too slow?
I think the reason for using an FPGA is that it can be programmed to do whatever you want, so you can make it act like any other CPU, whereas a DSP is just another processor with a different (fixed) instruction set. I don't really know anything about FPGAs, though.
 
Last edited by a moderator:
Tom` said:
Phawx said:
Excuse my ignorance but couldn't the DSP be used as an FPGA of sorts? Or is it not really worth it because the bus connecting the CPU <> DSP is too slow?
I think the reason for using an FPGA is that it can be programmed to do whatever you want, so you can make it act like any other CPU, whereas a DSP is just another processor with a different (fixed) instruction set. I don't really know anything about FPGAs, though.


More or less what I was getting at was that a DSP and FPGA excel at matrix calculations. And the two stumbling blocks in the picture that I was asking was:

1.) Can the Pandora's DSP be shoe-horned into an FPGA role.

2.) I know OMAP 3530 is a SoC, but I don't know if the speed of the interconnect would be a major bottleneck.

It would be very interesting to see an emulator using the DSP other then just audio purposes. Or even with a stand alone game, using the DSP as a physics co-processor.
 
Last edited by a moderator:
Phawx said:
Tom` said:
Phawx said:
Excuse my ignorance but couldn't the DSP be used as an FPGA of sorts? Or is it not really worth it because the bus connecting the CPU <> DSP is too slow?
I think the reason for using an FPGA is that it can be programmed to do whatever you want, so you can make it act like any other CPU, whereas a DSP is just another processor with a different (fixed) instruction set. I don't really know anything about FPGAs, though.


More or less what I was getting at was that a DSP and FPGA excel at matrix calculations. And the two stumbling blocks in the picture that I was asking was:

1.) Can the Pandora's DSP be shoe-horned into an FPGA role.

2.) I know OMAP 3530 is a SoC, but I don't know if the speed of the interconnect would be a major bottleneck.

It would be very interesting to see an emulator using the DSP other then just audio purposes. Or even with a stand alone game, using the DSP as a physics co-processor.

It's not quite as simple as that.

A DSP is good at doing lots of (certain kinds of) maths very quickly.

An FPGA can be whatever you want it to be (within some limitations).

For example, if you wanted to make a CPU with an instruction that swapped every pair of bits around (so 100111 became 011011) - that would be trivial with an FPGA, but harder with any more fixed kind of processor as it doesn't map neatly. With a PS2, as it has some instructions that are challenging to emulate (such as its somewhat bizarre FPU), you could implement these instructions on an FPGA.

That said, I don't expect FPGAs to appear in mobile devices anytime soon, if at all. The world simply does not move fast enough to need it.

Of course, using the DSP as a physics co-processor would be interesting. I expect people would use it solely to handle audio and video decoding tasks though - although I'm sure you could use it for more if you really wanted to.
 
Last edited by a moderator:
andys said:
Of course, using the DSP as a physics co-processor would be interesting. I expect people would use it solely to handle audio and video decoding tasks though - although I'm sure you could use it for more if you really wanted to.
The DSP certainly can be used for some tasks, alas the one on OMAP3 is integer only, so a physics engine would be a pain (and I'd argue it's not even doable efficiently).
 
Last edited by a moderator:
Laurent said:
andys said:
Of course, using the DSP as a physics co-processor would be interesting. I expect people would use it solely to handle audio and video decoding tasks though - although I'm sure you could use it for more if you really wanted to.
The DSP certainly can be used for some tasks, alas the one on OMAP3 is integer only, so a physics engine would be a pain (and I'd argue it's not even doable efficiently).

Could you do fixed point?

The OMAP has a lot more fixed point power than FP power, just by virtue of the fact that it can do 4x32 ints/clock on NEON as opposed to just 2x32 floats/clock?

I don't know if there is much of a point though.
 
Last edited by a moderator:
My understanding is that physic engines are based on solving differential equations (look for Runge-Kutta for instance) and I doubt doing it in fixed point would have the desired accuracy unless you are very careful and throw a lot of code at it.
 
Forgot I posted in this thread >.<
MDave said:
Rathum said:
MDave said:
trats20050 said:
Is there a PS2 emulator that runs decently on the a PC ?
If so, can the Pandora 2 be designed to run a PS2 emulator?
I know how everybody hates to talk about Pandora 2 but there's nothing to do on the forum yet except wait.

Maybe in about 10 years. High end PC's today can barely run PS2 fullspeed for most games. Handhelds seem to be about 10 years behind PC's in terms of power. It was around this time 10 years ago Quake 3 and Unreal Tournament came out, and they needed high end PC's to play at great frame rates and full quality graphics settings.

:blink: I just built my brother a computer for under $1000 that can run any PS2 game that actually work with PCSX2 at >60 fps with max settings and the internal resolution set to 1920x1080. This computer is nowhere near top of the line.

I don't think a handheld emulating the PS2 will be feasible in under 4 years, but I think 10 might be a bit extreme.

Unfortunately, as they say, "An optimist is never pleasantly surprised."

You're kidding me? A PC that can do PS2 emulation no problem is nowhere near highend? I have a quad core 3.0 ghz, 9800GX2 and it struggles. Sure, the graphics card may not be the latest greatest, but it was pretty high end a couple of years ago. Anyway my point still stands, because Quake 3 dosnt run full fps, full graphics settings on handhelds today.
OpenTheBox said:
Rathum said:
:blink: I just built my brother a computer for under $1000 that can run any PS2 game that actually work with PCSX2 at >60 fps with max settings and the internal resolution set to 1920x1080. This computer is nowhere near top of the line.
Just curious, what are the specs for this computer you built? A better question is what important parts are needed to run PCSX2 decently?

CPU: 3.4 GHz AMD Phenom II X4 965
Graphics Card: ATI Radeon HD 5770 1GB
RAM: 4GB DDR3 1600

That's the stuff that matters. The $1000 included everything but the monitor and speakers (OS included). I don't consider this top of the line, just "new". I got the CPU for $175 or so, the graphics card cost me another $170-ish, and the ram was about $95. I think that's very affordable, but you might have a different definition of "top of the line".

I was checking just now and PCSX2 used under 50% of the CPU about 99% of the time. I messed around with the graphics (and sound) settings and everything I did it stayed a constant 60 fps, even with blend (halves fps) enabled. CPU usage never changed. So the most important part would be the graphics card.

A lot of games only run at 30 fps natively, so your graphics card doesn't have to be *that* amazing to have games running at playable speeds. Corporate Shill Mode: I recommend the Radeon HD 5700 series (or 5800 if you want really high end cards), personally. I've had nothing but good experiences with the 5770.

Note: I use this card on windows using DX11. I have not tested it with Linux.
 
Last edited by a moderator:
I too have a 5770, and it works wonders on PCSX2. :) Most games I play I have to limit them to 60fps they run so fast, and I only get around 10-30% cpu usage with a 2.8GHz Q9550. And this is only DDR2 800 RAM, so you don't need a supercomputer for some games to play well.
That said, PS2 would never work on the Pandora at any usable speed, but I would like to see some cool stuff done with the DSP besides audio/video processing. I haven't looked much into it but just how well can we use the DSP? Last I heard the drivers weren't up to snuff for doing a whole lot besides whatever gstreamer and a few other things could do.
 
Is this 50% and 10-30% percentage of total core utilization or just one core? I imagine PCSX2 could easily get into situations where it's not fully utilizing all the cores but still isn't full speed.

It's hard to imagine that PS2 emulation needs GPUs so far in excess of what the PS2 was capable of. Maybe a lot of heavy per-pixel computation is necessary to emulate some features like paletted textures, but I would have figured that burden would just be shifted to texture caching. I'm not aware of the PS2 itself possessing any very out of the ordinary per-pixel effects, so the emulation remains fairly high level. Of course, people like to run PS2 emulations at resolutions much higher than what the PS2 games ran at, but this is strictly optional.

DSP support has been available on Beagleboard via interfaces built into the kernel. The whole process seems kind of complicated. Last I checked, Pandora's kernel didn't include these features, but I checked many months ago. I wouldn't be at all surprised if it has caught up since then. But I think we won't see a lot of people using the DSP, because it has a tricky interface and I doubt GCC compiles very good code for it (and C6x DSPs aren't that easy to write good ASM for, although it's not awful)... I'm largely basing this off of how little the second CPU was used in GP2X, and that was the same basic type as the main one.
 
Exophase said:
Is this 50% and 10-30% percentage of total core utilization or just one core? I imagine PCSX2 could easily get into situations where it's not fully utilizing all the cores but still isn't full speed.

It's hard to imagine that PS2 emulation needs GPUs so far in excess of what the PS2 was capable of. Maybe a lot of heavy per-pixel computation is necessary to emulate some features like paletted textures, but I would have figured that burden would just be shifted to texture caching. I'm not aware of the PS2 itself possessing any very out of the ordinary per-pixel effects, so the emulation remains fairly high level. Of course, people like to run PS2 emulations at resolutions much higher than what the PS2 games ran at, but this is strictly optional.
The emulator only uses 2 cores, and I'm going by what it says in the titlebar. Just did a quick test and the first core seems to be at a constant 60-75%, while the other three are around 25%. I'd wager that PCSX2 only reports total CPU usage and not just two cores, but I don't know if it just works on the first two cores, or if Windows does anything to split it up. I can't set the affinity for PCSX2 either.
Running it without the dualcore setting, PCSX2 still reports about 24% usage, but the first core goes to near-100% while the other three are <10%. It would seem that the GPU has a lot to do with it though, I had this same setup(and the Q9550 was actually OC'd to ~3.2GHz) with an 8600GT instead(nowhere near a 5770), and it couldn't get past 30fps, while the 5770 allows it to go past 80fps and beyond without limits.
Also I only tested with Kingdom Hearts just now, so I dunno how other games fare.
 
Last edited by a moderator:
It's a number that PCSX2 itself is reporting? Why would you assume that to be host CPU utilization? Could be a lot of things.

With all the time the PCSX2 team has spent on optimizing CPU emulation maybe the GPU guys ought to see if they can do anything to lower the card requirements..
 
Exophase said:
But I think we won't see a lot of people using the DSP, because it has a tricky interface and I doubt GCC compiles very good code for it (and C6x DSPs aren't that easy to write good ASM for, although it's not awful)...
TI C compiler for c6x are freely available for non-commercial use, and gcc has no support for c6x.
 
Last edited by a moderator:
Laurent said:
TI C compiler for c6x are freely available for non-commercial use, and gcc has no support for c6x.

I do remember the TI compiler being available, but this is all strange because TI themselves said that people will have to use GCC when they were promoting BeagleBoard.

Does the free version support all optimization levels?
 
Last edited by a moderator:
Exophase said:
Does the free version support all optimization levels?
As far as I could see, it's the full version of the compiler (no IDE, but who uses that? :) ).
 
Last edited by a moderator:
Back
Top