Posted By: JKKDARK
http://psx-scene.com/forums/427371-post35.html
Oh, the heck! It seems like a good time to anounce it now... just to not make other coders double the work that's already done (well, unless you want to... there is nothing bad about it).
I already have PSX emulator for PS2 called "PS2PSXe" (obvious, isn't it?). At first I wanted to make it as pcsx port, but this emulator isn't very optimal and well coded (and on PS2 we have to use everything we can to make it work realtime). That's why most part of it is written from scratch, just few parts remained... but I'm working to getting everything written from scratch.
The good thing is that the architecture matches in general, so CPU code is really simple. For memory access I used hardware TLB capabilities of PS2 (same for hardware access), so the memory access is also faster than on PSX. The PAD is just translated and sent almost directly to IOP side... it's now also very compatible. Memory cards are emulated and can be stored on any media (alternatively they could be simply translated to use real PSX MC in PS2 memory card slot). The SPU is also simply translated and almost directly send to IOP side (though, the sound is a little bit jerky... I'll probably have to create some intermediate buffer first). The cdrom part is handled almost entirely on IOP in asynchonous mode, so it just reads some sectors ahead while the main program uses already transferred data on EE side... it's also quite fast (I use host mostly, but it works fine with usb and hdd, too). It supports, of course, subchannels and cdda (cdda is dummy supported, it simulates laser head movement and playback, but in fact nothing is played nor data is accessed). The GTE is done on VUs (not that there is really a need to, GTE commands are not a big part of the whole load... it was more like fun to work on it... and became quite a hell now when I try to synchronize it now with new HW GPU core, so I'll probably dump it for some versions now). MDECS are handled mostly with IPU, though, I didn't make them independent of the emulation yet (which means they go through emulated CPU first), but I'm working on it (it can be done, there are emulators that handle it this way). COP0 emulation is very simplistic (no real support for debug functions, though there is some code that simulates it enough to make games using it work).
The last part, and the bottleneck right now is GPU that uses software rendering. It's based on Pete's P.E.Op.S GPU plugin, though many fixes had been done to make it work much faster on PS2 as well as make some games run at all and other display everything properly. New HW GPU is still under development, but right now it makes most games work more than two times faster (it shouldn't be much lower in final version, as the most time consuming part: VRAM writes and reads are already implemented... though, a little bit suck yet ).
Anyway, the status is: it is quite compatible. Already runs some simpler games at full speed, some more demanding (like final fantasy series in cities) at 35-45fps (let's assume for simplicity 50fps is 100% for pal and 60fps is 100% for ntsc... though it's not that simple), while some really demanding 3D games at ~17-25fps... Currently the worse speed is achieved in games that are using a lot of Vram->RAM and RAM->Vram transfers all the time. The new HW GPU doubles that (ie. it gives in FF9 in cities ~85-105 FPS). Only few people tested this app, but dlanor (a mod here and co-developer of uLE) wasted a lot of his time on the tests (probably even more than I did ).
Though, recently ESR and few other projects have stopped the development... but I'll be on it shortly (I hope I'll be able to finish everything while there still are some PS2 users around ).
Just wanted to let you know . Oh well, it's not a secret anymore (I even posted a beta testers recruitment post some time ago, but only two persons answered, and only one decided finally to help - you guessed, dlanor ).