Is Psp Emulation Really Feasible?


jakshep2

Active Member
Joined
Nov 10, 2007
Messages
509
Website
Visit site
like Prophet said on the emulator list, psp emulation is being considered, but apparently you need 30 - 50 times the processing power to emulate a machine. what would be the point of a psp emu if it only plays games at like 1.5FPS?

________________
Jakshep2 :pandora1:
 
That 20-50 times is just a myth, it depends on a lot of different factors.
We don't know if it will work or not, but somebody's going to try and see if it will. It certainly wouldn't be fullspeed and would probably just be POC.
 
all i renember is that hlide was considering making a psp emulator for the pandora but how playable it may be i dont think anyone will know till people have had time with the hardware to create the software
 
Im not too bothered about playing psp games since the ones I already have were rubbish, Im really looking forward to playing ps1 and gba games and hopefully n64 games.

But like PlopperZ said it depends on alot of different factors and you could get one innovative dev in the future who puts his/her mind to it and makes it possible.
 
jakshep2 said:
like Prophet said on the emulator list, psp emulation is being considered, but apparently you need 30 - 50 times the processing power to emulate a machine. what would be the point of a psp emu if it only plays games at like 1.5FPS?
Emulating the hardware would give about your 1.5fps assumption.

However, using high level emulation (emulating the Sony SDK rather than the hardware) would be much quicker, and since a lot of games use the SDK, it might be worth it.
 
Last edited by a moderator:
Squidge said:
jakshep2 said:
like Prophet said on the emulator list, psp emulation is being considered, but apparently you need 30 - 50 times the processing power to emulate a machine. what would be the point of a psp emu if it only plays games at like 1.5FPS?
Emulating the hardware would give about your 1.5fps assumption.

However, using high level emulation (emulating the Sony SDK rather than the hardware) would be much quicker, and since a lot of games use the SDK, it might be worth it.


The question is whether you could do so legally (I remember a comment that doing so would be much more questionable than normal styles of emulation), and, if not, covertly enough that the first release could be perfect (because you just know that after the first release you're getting a CnD letter if it is even remotely legally questionable. Or before it if you publicise that you're making it in the first place).

EDIT: Oh, and whether it'd be fast enough to use anyway :p
 
Last edited by a moderator:
Man, PSP emulation on Pandora would be amazing! Think of the myriad of incredible titles like Metal Gear Solid: Portable Ops, Chains of Olympus, and... erm... uhhhh.... damn. :lol: Well, there's all those awesome arcade ports, but isn't that what MAME is for?
 
Tobriand said:
The question is whether you could do so legally (I remember a comment that doing so would be much more questionable than normal styles of emulation), and, if not, covertly enough that the first release could be
There is a PSP emu on the PSP that uses that style of emulation. They've reverse engineered the high level sdk calls, so it's legal. The only problem of course is that it runs very little in the way of commercial games.
 
Last edited by a moderator:
CronoTriggerfan said:
Man, PSP emulation on Pandora would be amazing! Think of the myriad of incredible titles like Metal Gear Solid: Portable Ops, Chains of Olympus, and... erm... uhhhh.... damn. :lol: Well, there's all those awesome arcade ports, but isn't that what MAME is for?
You'd probably only get the games that were coded back when the official clock for the PSP was 222 MHz to work well if this thing did come to be a reality.

I would want PSP emulation to brag to my PSP-toting friends, but also to play Power Stone Collection (seeing as how Dreamcast Emulation is definitely not possible) I would LOVE to have Power Stone handheld.

-God Ginrai
 
Last edited by a moderator:
Squidge said:
Tobriand said:
The question is whether you could do so legally (I remember a comment that doing so would be much more questionable than normal styles of emulation), and, if not, covertly enough that the first release could be
There is a PSP emu on the PSP that uses that style of emulation. They've reverse engineered the high level sdk calls, so it's legal. The only problem of course is that it runs very little in the way of commercial games.

a PSP emulator ON the PSP? :p that seems rather pointless ^^
 
Last edited by a moderator:
God Ginrai said:
CronoTriggerfan said:
Man, PSP emulation on Pandora would be amazing! Think of the myriad of incredible titles like Metal Gear Solid: Portable Ops, Chains of Olympus, and... erm... uhhhh.... damn. :lol: Well, there's all those awesome arcade ports, but isn't that what MAME is for?
You'd probably only get the games that were coded back when the official clock for the PSP was 222 MHz to work well if this thing did come to be a reality.

I would want PSP emulation to brag to my PSP-toting friends, but also to play Power Stone Collection (seeing as how Dreamcast Emulation is definitely not possible) I would LOVE to have Power Stone handheld.

-God Ginrai

Yeah, I'd agree, though I wouldn't really use it the brag-factor would be through the roof. :p And Power Stone would be godly on the go, such an inventive little fighter.
 
Last edited by a moderator:
As was mentioned, it would be great PoC. Also, as better ARM processors come out, there's solid PSP emulator code for the ARM to adapt.

Same goes for other consoles, even if they don't work this gen. The cortex A9 is going multicore, speculative out-of-order with speeds 1 GHZ+. Too bad we won't see a SoC until late 09 early 10 based on it.
 
In fact, it is very difficult to answer. If a PSP game just uses only MIPS instructions (CPU+FPU), it would probably be okay with the appropriate HLE and a good GE emulator through OpenGL. But if this game really uses VFPU (as I would expect it for recent 3D games), I fear that would be very difficult as VFPU is quite a beast to emulate (http://forums.ps2dev.org/viewtopic.php?t=10471).

Some details about PSP :

- Games are running in a user mode, which means they cannot access hardware addresses which are only accessible in kernel mode; that's a good news, no hardware emulation. So HLE is the best candidate.

- as COP0 only runs in a kernel mode, no need to emulate it as well. Great.

- PSP has no MMU, so no TLB to emulate. Great.

- Scratchpad seems to be never used as it isn't faster than main RAM. Great.

- So only two types of RAM to emulate : main RAM and VRAM for GE. We can use a check and patch memory selector (before reading or writing a register in memory, we check whether the address is in the expected memory - if not, we patch the faulty code with the right code for the right memory; for most time, this patch would be done only once as this part of code is only accessing either main memory or VRAM)

- Official game developers cannot program the second Allegrex processor in ME as it is used for codecs. So no need to emulate this second processor. Great.

What else ?

In fact, my very first fear is about VFPU : would it be possible to turn them into fast NEON instructions ?
 
Mistabeen said:
Squidge said:
Tobriand said:
The question is whether you could do so legally (I remember a comment that doing so would be much more questionable than normal styles of emulation), and, if not, covertly enough that the first release could be
There is a PSP emu on the PSP that uses that style of emulation. They've reverse engineered the high level sdk calls, so it's legal. The only problem of course is that it runs very little in the way of commercial games.

a PSP emulator ON the PSP? :p that seems rather pointless ^^

Really? I'd like to see you try and burn an image onto a UMD
 
Last edited by a moderator:
pandora said:
Mistabeen said:
Squidge said:
Tobriand said:
The question is whether you could do so legally (I remember a comment that doing so would be much more questionable than normal styles of emulation), and, if not, covertly enough that the first release could be
There is a PSP emu on the PSP that uses that style of emulation. They've reverse engineered the high level sdk calls, so it's legal. The only problem of course is that it runs very little in the way of commercial games.

a PSP emulator ON the PSP? :p that seems rather pointless ^^

Really? I'd like to see you try and burn an image onto a UMD

? since a psp with custom firmware can run images without emulation what's the need?
 
Last edited by a moderator:
I would think Dreamcast emulation would be more feasible than PSP emulation, since Dreamcast is slower than the PSP, there are already working Dreamcast emulators for the PC, and the Pandora uses a more advanced version of the PowerVR chip used in the DC. But I wouldn't count on either of them happening.
 
hlide said:
In fact, it is very difficult to answer. If a PSP game just uses only MIPS instructions (CPU+FPU), it would probably be okay with the appropriate HLE and a good GE emulator through OpenGL. But if this game really uses VFPU (as I would expect it for recent 3D games), I fear that would be very difficult as VFPU is quite a beast to emulate (http://forums.ps2dev.org/viewtopic.php?t=10471).

Some details about PSP :

- Games are running in a user mode, which means they cannot access hardware addresses which are only accessible in kernel mode; that's a good news, no hardware emulation. So HLE is the best candidate.

- as COP0 only runs in a kernel mode, no need to emulate it as well. Great.

- PSP has no MMU, so no TLB to emulate. Great.

- Scratchpad seems to be never used as it isn't faster than main RAM. Great.

- So only two types of RAM to emulate : main RAM and VRAM for GE. We can use a check and patch memory selector (before reading or writing a register in memory, we check whether the address is in the expected memory - if not, we patch the faulty code with the right code for the right memory; for most time, this patch would be done only once as this part of code is only accessing either main memory or VRAM)

- Official game developers cannot program the second Allegrex processor in ME as it is used for codecs. So no need to emulate this second processor. Great.

What else ?

In fact, my very first fear is about VFPU : would it be possible to turn them into fast NEON instructions ?
Not all emulators can run all the games for a system anyways. If you coded an emu that could run a lot of PSP games well, I think the community would be happy enough. (Of course there would always be the one or two people to bitch about how they want support for such and such game, but PSP emulation would be such a feat that I'm pretty sure they'd be hushed pretty quickly by the community) ;)

BTW, Do you think Power Stone Collections would run well? It's not a recent 3D game, so I would assume it would, but I'd just like to get your thoughts. (It came out in 2006)

SpacemanSpiff said:
I would think Dreamcast emulation would be more feasible than PSP emulation, since Dreamcast is slower than the PSP, there are already working Dreamcast emulators for the PC, and the Pandora uses a more advanced version of the PowerVR chip used in the DC. But I wouldn't count on either of them happening.
Read hlide's post.

EDIT: (corrected a logic error)

-God Ginrai
 
Last edited by a moderator:
filiph.ps said:
since a psp with custom firmware can run images without emulation what's the need?
POC Mostly, though it could potentially be used to later port the emulator to other things.

Also; I believe that is the emulator that was being referred to. The PSP is normally incapable of booting from ISOs, so it is likely that some form of emulation would be required to get around the expected drive configuration of the PSP.
 
Last edited by a moderator:
CyruzDraxs said:
Also; I believe that is the emulator that was being referred to. The PSP is normally incapable of booting from ISOs, so it is likely that some form of emulation would be required to get around the expected drive configuration of the PSP.

No. You just have to patch some functions, I believe.

It was really just a typo, I believe Squidge was referring to one of the PSP emulators for PC.
 
Last edited by a moderator:
Thanks for the informative post hlide, indeed I think PSP w/HLE is a very interesting and unconventional emulation choice.

hlide said:
In fact, it is very difficult to answer. If a PSP game just uses only MIPS instructions (CPU+FPU), it would probably be okay with the appropriate HLE and a good GE emulator through OpenGL. But if this game really uses VFPU (as I would expect it for recent 3D games), I fear that would be very difficult as VFPU is quite a beast to emulate (http://forums.ps2dev.org/viewtopic.php?t=10471).

Some details about PSP :
The only fear is that the games heavily use the Allegrex's FPU in a way such that it does not map well to NEON. And you'd want to throw NEON at VFPU emulation as much as possible, so would not want to tie up resources in register caching FPU for it, etc.

hlide said:
- So only two types of RAM to emulate : main RAM and VRAM for GE. We can use a check and patch memory selector (before reading or writing a register in memory, we check whether the address is in the expected memory - if not, we patch the faulty code with the right code for the right memory; for most time, this patch would be done only once as this part of code is only accessing either main memory or VRAM)
Although there are only two types of RAM, there are more than one region for each because of cached vs. uncached. However, because none of these read/writes have any side effects this is a perfect opportunity to use mmap to emulate it directly. You just need to make sure that the address space the emulator needs is placed somewhere where user mode on PSP cannot access, and this can most likely be guaranteed with a proper linker script.

With both memory and I/O out of the way you're free to make a very efficient recompiler. Having direct memory accesses means that you can do complex conversions say from series of loads/stores to ldm/stm. I would love to see constant, move, and shift propagation employed to better take advantage of the strengths of the ARM architecture over MIPS32 (and help fight some of the disadvantages). This would work well for addressing especially, IE converting "shl r1, r3, 2; add r2, r2, r1; ld r1, (r2)" into "ldr r1, [r2, r3, lsl #2]" at least. Also some kind of efficient global register allocation.. it could all get very complex, be sure to write a dissertation on it when you're done. But you've already been doing MIPS->ARM recompilation anyway.

hlide said:
- Official game developers cannot program the second Allegrex processor in ME as it is used for codecs. So no need to emulate this second processor. Great.
But, you still need to emulate the codecs, and as far as I'm aware there is dedicated hardware in PSP for this. The OMAP3530's C64x+ DSP would most likely be put to heavy work, but I think it should all be doable.

hlide said:
What else ?

In fact, my very first fear is about VFPU : would it be possible to turn them into fast NEON instructions ?
Clock for clock NEON can't match VFPU, so the only hope you have is that the great clock difference (cross fingers for 900MHz) would outweigh that.

However, there is another major fear IMO, and that is whether or not the SGX 530 can really catch up. You said to use OpenGL, however as you know there are many subtle features in PSP's GU that do not map to OGL and would have to be emulated with shaders. SGX 530 doesn't look like it'll have extremely strong shaders, and there isn't really a clock advantage here (maybe even a disadvantage). There are also different texture formats, including swizzling, so you'd need caching (and I think some PSP games load textures constantly), and there are the same problems for PS1 emulation with full access to VRAM, this time for the CPU as well. PSP claims to be able to handle far more triangles than SGX 530 to begin with. I don't know how this will work out in the real world, for games, especially those that are using the GU at 111MHz, but it seems like you're bound to find something that doesn't map well enough fast enough.

Maybe aiming for 2D games would be the most realistic bet.
 
Last edited by a moderator:
Back
Top