Is that PacManFan's?
The psone emulator source code is avaliable for download here: http://rapidshare.de/files/28679439/...ource.rar.html
Is that PacManFan's?
From my expierence from working on the psx4all PS1 emulator for handhelds such as the GP2X, Gizmondo, and other relavitely low powered systems, I can say this...if you can call static recompilation easy, I could use your help.
Converting a PS1 game's ISO, which contains MIPS R3000A bytecode, and translating each instruction to an equivalent PSP R4000A isn't exactly an easy task. There are differences between the two architectures hence the difference revision of processor (duh), and those differences usually equate to something other than a 1 to 1 instruction translation. Meaning it might take (random magic number) 4 instructions to change a R3000A instruction ADDIU to the equivelant on the R4000A. That means more registers will most likely have to be used, which in turn means you can't map every register. Now you have to store the data needed to translate the instruction in memory, most likely a structure of registers. It goes on and on.
Static recompilation also isn't "possible" in a lot of cases of emulation involving self modifying code. Just for reference.
I am currently working on a R3000A -> ARM dynamic recompiler, which is usually slower than static recompilation, but doesn't involve converting of the ISO beforehand as it does the conversion on the fly, and keeps a translation cache to speed things up. GP2X users of psx4all for instance, should notice a 2x - 3x performance increase when bug's in the dynarec are ironed out, and it is further optimized.
What the PSP will most likely need to get a PS1 emulator running at decent speed is either recompilation, the use of the Media Engine (which is a fancy term for a second MIPS), or best yet... both.
The PSP does have the edge since it uses a similar processor which can be used to interpret or recompile the "GTE" of the PS1 which is used for math operations, and can be mapped easily to the PSP's vfpu.
Hope this was somewhat informative.
yes it is
wow. thanks for the info zodttd. i never thought it would be that hard (i knew it was hard but)...
I here youzodttd i wish we never had to work so we can have time to help.
Oh it get's much harder. The PS1 is a monster to emulate. A lot is still not documented as well. Open source PS1 emulators are usually "handed down code" and were left in their early stages. Some very important subsystems of the PS1 are still fairly unclear, such as the timers/r oot counters. There is the cdrom subsystem that is still quite messy. Where most emulators render a frame, display the frame, take input from the user and repeat...most PS1 emulators work by an interrupt system where interrupts are requested and fulfilled in a queue.
If it wasn't for Unai of Chankast fame for creating his own PS1 GPU for psx4all, there would have been many game's that would look very inaccurate, though there is Pete's GPU which is quite nice.
Oh, and then there's SIO, serial IO, for joypads and memory cards. It's heavily dependant on the timing of interrupts, and if one was to try to underclock the PS1 clockspeed in an emulator they might notice many games no longer can save to a memory card albeit higher performance.
There's so many things that can go wrong, and trying to support such a huge library of games is tough. So if the PSP gets a PS1 emulator, it will be far from "perfect".
I'd really like to see some of the PC/PocketPC PS1 emulator writers subscribed to dcemu give their thoughts on this.
Out of curiousity, a look at PSPSOne's source shows it's a port of PCSX with a custom written R3000A -> R4000A dynarec. There's lots of improvements that could be made still it seems. Now why the source was released and what happened to him...
Being familar with PCSX, I can say there's some very simple changes that could be made to that source to speed it up on the platforms it runs on. It falls under the underclocking stuff I mentioned above. All the issues mentioned also relate to PCSX as well.
I'm looking through it and it doesn't seem to have been modified much in terms of the emu's "guts" besides the change from an interpreter/dynarec for 386/SH4 to a R4000A dynarec.
If anyone needs help with PCSX, just PM me.
quick question, is it possible to use the PSX's BIOS file to emulate the PS1's overall IO system on the PSP using the instruction set from the BIOS? or is the BIOS simply just for the "Firmware" of the PSX?
I would also like to point out just how many failed PC PSX emulators there have been (or not failed, but poor quality) And how even when you have processing of a superior system, the emulators still dont generaly work.. AdriPSX is just about the only PS1 emulator I have ever known, that works...
Also I beleave that it should be possable to get the source for AdriPSX, however it is written in C and x86 Assembly, so it could be difficult to port anyway..
my brain is melting too much smart talk.....it would be awesome
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks