Release psp emulator


bartleby said:
my my, we sure do have some celebrities in these here forums: craigix is jesus christ, and now it turns out that good old poisy is god himself!

Shock revelation or what. Poisoned is Craig's father!

Well, all our fathers I suppose. If you follow the teachings of that book.

Anyway, back on topic, I don't personally care for PSP emulation. But as always, the more emulators and other software for the device, the better!
 
its a shame i dont know a thing about coding otherwise id be spending ALL of my freetime doing it
 
Blessedcurse said:
its a shame i dont know a thing about coding otherwise id be spending ALL of my freetime doing it

If you're that keen on doing it, get hold of a decent book and start learning!
 
honestly I don't think this project can be done by only one person.

Someone help this man. He wants to code what could be the best emu for the pandora. The pandora really would be a psp killer if it had a psp emu. Imagine how many more units they would sell if they could say it emulates psp! Computers aren't even doing that yet. Craig, get this guy some dev fund incentive. (or at least an alternate payment method) Is there no other devs that are interested in this? Damn I wish I knew how to code. What do I need to learn to help, hlide? C++? :)

Edit: yea, its C/C++ as he said in his post.
 
Chip said:
The Pandora is more powerful than a PSP on paper, but to emulate a system you need a machine that is many times more powerful.
Just out of interest, If Pandora is more powerful than the PSP, would it be possible to make a game to the same standard, if not better (graphically and gameplay wise), starting from scratch and tailoring it to the Pandora system?
 
Boolean said:
Chip said:
The Pandora is more powerful than a PSP on paper, but to emulate a system you need a machine that is many times more powerful.
Just out of interest, If Pandora is more powerful than the PSP, would it be possible to make a game to the same standard, if not better (graphically and gameplay wise), starting from scratch and tailoring it to the Pandora system?
If someone has the time, patience and knowledge... sure. Realistically though, not really. There will be some great homebrew games made, but a bedroom coder only has a certain amount of free time. Even if successful collaborations are made, it's not generally something that can compete with the man-power, budget etc of a commercial games company making games for the PSP.
 
PokeParadox said:
There will be some great homebrew games made, but a bedroom coder only has a certain amount of free time.
Some of them manage 15,000 hours...
MonkeyChops said:
The pandora really would be a psp killer if it had a psp emu. Imagine how many more units they would sell if they could say it emulates psp!
Whether you are happy having a psp or not, psp on Pandora would be awesome and could change the gaming scene significantly. It would probably make Craig/ED/Fatih very rich.

It might not happen, but it has to be worth a shot if people are willing.
 
Last edited by a moderator:
well then i guess i should get busy...anybody know a good book to read? or perhaps an online page?

i know i wont manage to get up to par for psp anywhere near time for an emu...i grasp things quickly but thats years of learning...i think

also i doubt i can get 15000 hours on lol...i mean...im only on computer from 7 - 10 pm... plus im only in 11th grade :p
 
Blessedcurse said:
well then i guess i should get busy...anybody know a good book to read? or perhaps an online page?

i know i wont manage to get up to par for psp anywhere near time for an emu...i grasp things quickly but thats years of learning...i think

also i doubt i can get 15000 hours on lol...i mean...im only on computer from 7 - 10 pm... plus im only in 11th grade :p

check wikibooks. When I was interested in Python they pointed me towards a pretty good book on it. even if you don't like the article they might have something.
 
This seems like a worthwhile project, even if it is nigh on impossible! I might be able to help...but I need some help, some pointers first to get me up to speed. Honestly, I can't just start going with this, there's a ton of reading to do first!

I don't want to blow my own trumpet, but to give you some idea of what I need to learn: I'm an experienced C/C++ developer, I understand electronics very well, especially embedded, and know DSPs very well (am actually a control systems engineer by day), am a little familiar with ARMv5 assembly (from some time ago, quite rusty now), but know assembly in general quite well...have experience in developing on real time systems (VxWorks, LinuxRT, OS-9) and linux kernel device drivers. I understand the basic principles of an emulator but have never looked at the source code of one, and have a basic understanding of 3D, but not graphics card architectures - I could use OpenGL I expect (but never tried) but would need to learn a lot to be able to do GPGPU (although I saw some CUDA that made my head spin a bit), but I understand all about 3D maths (transforms, quaternions etc)

What I don't know, or my problems are as I see it (quite probably some gaping holes here - please point them out):
+ How you structure an emulator (code structure) Is there a good example of a similar style of emulator to this anywhere? I can see c templates being very useful...am I on the right lines? You do intend to write this in C right?
+...I have questions, like can't we recompile the PSP instructions for a whole game to the Pandoras 3 processors instead of converting them on the fly?...
+ why do we have to reimplement PSP APIs when the code is binary and presumably has APIs already in binary form, or are they in the PSP ROM? Can't we run the API binaries through the PSP anyway?
+ I don't know anything about PSP (even what arch it uses, or 3d accelerator etc - though presumably fairly easy to find out online) How much PSP hardware documentation is there?
+ haven't really read much about the OMAP and its 3 processors yet (i.e. omap, dsp, powervr) and that's a ton of reading
+ don't seem to have much free time atm, but am willing to try and find it
+ um, thats all i can think of right now, though I'm sure there's much much more i should learn...i always wanted to get into emulators

Got any pointers, suggestions for reading etc? Maybe I will then have a chance of helping out!
 
Catch23 said:
+ why do we have to reimplement PSP APIs when the code is binary and presumably has APIs already in binary form, or are they in the PSP ROM? Can't we run the API binaries through the PSP anyway?

Oh yeah, it didnt occur to me that PSP might have an OS. What I really mean is can't we run that & APIs on the emulator too instead of implementing it natively?

I may have asked some silly questions...
 
Catch23 said:
I'm an experienced C/C++ developer, I understand electronics very well, especially embedded, and know DSPs very well (am actually a control systems engineer by day), am a little familiar with ARMv5 assembly (from some time ago, quite rusty now), but know assembly in general quite well...have experience in developing on real time systems (VxWorks, LinuxRT, OS-9) and linux kernel device drivers. I understand the basic principles of an emulator but have never looked at the source code of one, and have a basic understanding of 3D, but not graphics card architectures - I could use OpenGL I expect (but never tried) but would need to learn a lot to be able to do GPGPU (although I saw some CUDA that made my head spin a bit), but I understand all about 3D maths (transforms, quaternions etc)
not bad indeed :)

ok, I already have a project, http://code.google.com/p/pspe4all/. Right now, it is void because I'm not hurry up. As you can see it will be open source (GPL v3, may changed if any reason to do so). I'm mostly working on JPCSP as it makes easy to have a good idea what we may need or not for a good PSP emulator.

Catch23 said:
+ How you structure an emulator (code structure) Is there a good example of a similar style of emulator to this anywhere? I can see c templates being very useful...am I on the right lines? You do intend to write this in C right?
rather using c++ for template and some structures ONLY when it makes sense. Only one main.cpp and a hierarchied bunch of headers to make the emulator compact as much as possible.

Catch23 said:
+...I have questions, like can't we recompile the PSP instructions for a whole game to the Pandoras 3 processors instead of converting them on the fly?...
it is called static recompiler and there is quite a vaste literature about it. You should think PSP uses a collection of DLL-like modules (PRX). Even some games have several PRX modules. Usually a static recompiler is defected by Self-Modified-Code.

Catch23 said:
+ why do we have to reimplement PSP APIs when the code is binary and presumably has APIs already in binary form, or are they in the PSP ROM? Can't we run the API binaries through the PSP anyway?
Because hardware is not documented, and trying to emulate hardware is always slower. Sure, you could avoid to reimplement all the modules by just doing for those that are necessary but you'll need to implement those module as expected by the other unimplemented modules instead of taking some freedom on the way to implement. Official developers use an official SDK with an Official API. What you need is to implement those Official API.

Catch23 said:
+ I don't know anything about PSP (even what arch it uses, or 3d accelerator etc - though presumably fairly easy to find out online) How much PSP hardware documentation is there?
you can ask some people on www.pspdev.org.

Catch23 said:
+ don't seem to have much free time atm, but am willing to try and find it
As I do
 
hlide said:
ok, I already have a project, http://code.google.com/p/pspe4all/. Right now, it is void because I'm not hurry up. As you can see it will be open source (GPL v3, may changed if any reason to do so). I'm mostly working on JPCSP as it makes easy to have a good idea what we may need or not for a good PSP emulator.

I will check out the JPCSP source when I get some spare time. But yuck, why are they writing an emulator for a high end system in Java!? Though I hear the new Java is much faster...but still, you're stacking an emulator on an emulator. And the Pandora would struggle with that!

hlide said:
rather using c++ for template and some structures ONLY when it makes sense. Only one main.cpp and a hierarchied bunch of headers to make the emulator compact as much as possible.

Is there a similar emulator design you know of to browse the source of? Preferably a PSP emulator written in C/C++?...

hlide said:
Usually a static recompiler is defected by Self-Modified-Code.

Ah, yeah I didn't think of that. No wonder emulation is such a hard task...

hlide said:
Because hardware is not documented, and trying to emulate hardware is always slower. Sure, you could avoid to reimplement all the modules by just doing for those that are necessary but you'll need to implement those module as expected by the other unimplemented modules instead of taking some freedom on the way to implement. Official developers use an official SDK with an Official API. What you need is to implement those Official API.

Makes sense. How big is the SDK!? It appears to be difficult to get hold of, and I couldn't find any docs, so how can we re-implement it? More reverse engineering!? There is the open source version, but I presume that it is different to the official one? From 30 mins of googling it seems no one knows too much about it, even the guys writing JPCSP - is that right? This makes the whole problem much harder than I thought!

hlide said:
you can ask some people on www.pspdev.org.

I'll do that some time soon...

hlide said:
Catch23 wrote:
+ don't seem to have much free time atm, but am willing to try and find it

As I do

This means you do or you don't have much spare time? :)
 
Catch23 said:
I will check out the JPCSP source when I get some spare time. But yuck, why are they writing an emulator for a high end system in Java!? Though I hear the new Java is much faster...but still, you're stacking an emulator on an emulator. And the Pandora would struggle with that!
At first, I was reluctant. But the main advantage of this project is there is a devteam really working on it and making progress. Sure, this project would never run on Pandora, nor I would expect a decently playable emulator. But that's a good start to grab the diffcult points to emulate and will help in the future for designing a C/C++ psp emulator.

Catch23 said:
Is there a similar emulator design you know of to browse the source of? Preferably a PSP emulator written in C/C++?...
in C/C++ : Potemkin psp emulator source, SAM psp emulator source
in C# : pspplayer psp emulator source, was reported to play some commercial games
in D : don't remember the name...

Catch23 said:
How big is the SDK!? It appears to be difficult to get hold of, and I couldn't find any docs, so how can we re-implement it? More reverse engineering!? There is the open source version, but I presume that it is different to the official one? From 30 mins of googling it seems no one knows too much about it, even the guys writing JPCSP - is that right? This makes the whole problem much harder than I thought!
pspsdk and reverse-engineering like the Utopia project.

Catch23 said:
This means you do or you don't have much spare time? :)
I mean I have a job so it isn't easy for me to have the spare time i would like to have for it. So i'm concentrating for now on JPCSP until a commercial game can run. If that point is reach, I'll start psp emulation in C/C++ for Pandora.

Besides, I heard open source devtools for Cortex-A8 are usually buggy for NEON and DSP (codesourcery). And I don't even knwow if we could have a decent OpenGL driver and tools to use it. So i don't think we need to hurry up.
 
hlide, do you still have a pandora ordered? I should be getting a beagleboard if they release rev c next month (my LCD monitor doesnt have DVI so I need to wire the LCD pins to some laptop LCD) so I will start looking into this again... I have this and one other big software project (and a bunch of small ones... and a tonne of hardware ones) in mind currently and am starting to find more time and motivation to do work on these things outside of work (and decided to learn GPGPU so I'm hoping Marciek is successful with his SGX driver) ... so many ideas, so little time
 
Back
Top