zodttd
Solving your premature emulation since the Tapwave
History of psx4all:
It was originally started out as "PPSX" / "PalmPSX" / "ZodPSX". Basically one night I wanted to know how emulators work (since I had no clue at all), and I found PCSX source laying around and I ported it to the Tapwave Zodiac in literally one night. This was a huge feat unto itself considering the PalmOS that the Zodiac is relying on to some extent doesn't even have a file system. I had the unfortunate timing to make this port available to the forums, unknowingly at the time, immediately after DaveC said it was "impossible". So you can understand there's some tension there.
Since I didn't know much about emulation, I didn't realise how much work would be involved in getting a PSX emulator that happened to be open sourced and sadly unfinished/unpolished to be satisfying. I spent a very long time working on PPSX tweaking it here and there, getting every frame I could with what I knew. The Tapwave Zodiac community, like GP2X communities, were very happy to just see something like this be done where others (many more than DaveC would say the same thing. DaveC just says it) said it couldn't be.
PPSX was always something sort of funny to see, and we always hoped with a dynarec it would be feasible to become a useful emulator. Then the GP2X came out, and I was able to get one. I met Unai and he too believes that psx emulation is feasible on the GP2X and he offered he expertise on the GPU. He also brought in Chui, which was the inspiration for the psx4all name.
Now we have psx4all. Only one problem, psx4all was still using PCSX's techniques, which just weren't meant for performance. PCSX had been designed for a PC, and it showed.
psx4all needs a complete rewrite. I spent years trying to improve something that was flawed from it's core. So by passing this project on to Unai, Chui, Tinnus...it will get a fresh look on things.
When people say psx emulation on the GP2X isn't feasible, I believe they're wrong. There's enough ratio clock for clock to make it possible.
People keep saying 3D is not possible but 2D is. That doesn't make quite as much sense. Anyways, a poorly designed playstation game in 2D can go much slower than a 3D game. First, 3D games rely on the GTE, which flattens down things to a 2D framebuffer. The GTE in psx4all is poorly designed, and is the reason "3D games" go slowly. But this isn't to say that the GTE couldn't be done differently...done better.
What Epicenter, as I see it, is saying is that the GP2X doesn't have the hardware available to suit PSX emulation. He's right, it doesn't. But that doesn't mean emulation on the GP2X isn't feasible. It only says that is hasn't been done well yet.
My main point is:
psx4all proves what everyone should already have known, psx emulation on the GP2X and similar handhelds isn't impossible.
psx4all so far can only play a small handful of games at decent speeds. But this doesn't mean it can't play most games at playable speeds. It just means I didn't make the right choices in going about psx emulation.
There is so much that goes on during a psx game, even if it were showing a "2D" static image. An example is the more than 2.6 MILLION cycles processed during loading the BIOS of the psx. That's the time it takes to say "Load Success" in psx4all. You didn't see anything on the screen... But a lot is happening that isn't outputted to the screen. If we have those "boring" looking games running at such speeds already, it's not far from playable speeds on any game. The "3D" output to the 2D framebuffer, is about getting the GTE working better, or avoiding it all together. The interrupts that keep holding back psx4all don't need to run async. The pad input for psx4all doesn't need to be handled by SIO, making the dynarec potentially much more quick. The dynarec CAN run much faster, it's just poor design in its way.
I am working with another talented programmer at writing a PSX emulator from scratch. Strangely enough he was writing a dynarec for a PSX emulator, and found a lot of the strange ways of going about psx emulation like I did. We have some really great ideas and they seem to be very practical. I wouldn't dismiss psx emulation on handhelds such as the GP2X just yet.
Those who say the community doesn't affect what a developer does in his freetime...if it wasn't for the positive thinking Tapwave/GP2X community I wouldn't be programming anything related to gaming at all.
I'll clarify what I mean as needed. This post was more complicated than I expected.
It was originally started out as "PPSX" / "PalmPSX" / "ZodPSX". Basically one night I wanted to know how emulators work (since I had no clue at all), and I found PCSX source laying around and I ported it to the Tapwave Zodiac in literally one night. This was a huge feat unto itself considering the PalmOS that the Zodiac is relying on to some extent doesn't even have a file system. I had the unfortunate timing to make this port available to the forums, unknowingly at the time, immediately after DaveC said it was "impossible". So you can understand there's some tension there.
Since I didn't know much about emulation, I didn't realise how much work would be involved in getting a PSX emulator that happened to be open sourced and sadly unfinished/unpolished to be satisfying. I spent a very long time working on PPSX tweaking it here and there, getting every frame I could with what I knew. The Tapwave Zodiac community, like GP2X communities, were very happy to just see something like this be done where others (many more than DaveC would say the same thing. DaveC just says it) said it couldn't be.
PPSX was always something sort of funny to see, and we always hoped with a dynarec it would be feasible to become a useful emulator. Then the GP2X came out, and I was able to get one. I met Unai and he too believes that psx emulation is feasible on the GP2X and he offered he expertise on the GPU. He also brought in Chui, which was the inspiration for the psx4all name.
Now we have psx4all. Only one problem, psx4all was still using PCSX's techniques, which just weren't meant for performance. PCSX had been designed for a PC, and it showed.
psx4all needs a complete rewrite. I spent years trying to improve something that was flawed from it's core. So by passing this project on to Unai, Chui, Tinnus...it will get a fresh look on things.
When people say psx emulation on the GP2X isn't feasible, I believe they're wrong. There's enough ratio clock for clock to make it possible.
People keep saying 3D is not possible but 2D is. That doesn't make quite as much sense. Anyways, a poorly designed playstation game in 2D can go much slower than a 3D game. First, 3D games rely on the GTE, which flattens down things to a 2D framebuffer. The GTE in psx4all is poorly designed, and is the reason "3D games" go slowly. But this isn't to say that the GTE couldn't be done differently...done better.
What Epicenter, as I see it, is saying is that the GP2X doesn't have the hardware available to suit PSX emulation. He's right, it doesn't. But that doesn't mean emulation on the GP2X isn't feasible. It only says that is hasn't been done well yet.
My main point is:
psx4all proves what everyone should already have known, psx emulation on the GP2X and similar handhelds isn't impossible.
psx4all so far can only play a small handful of games at decent speeds. But this doesn't mean it can't play most games at playable speeds. It just means I didn't make the right choices in going about psx emulation.
There is so much that goes on during a psx game, even if it were showing a "2D" static image. An example is the more than 2.6 MILLION cycles processed during loading the BIOS of the psx. That's the time it takes to say "Load Success" in psx4all. You didn't see anything on the screen... But a lot is happening that isn't outputted to the screen. If we have those "boring" looking games running at such speeds already, it's not far from playable speeds on any game. The "3D" output to the 2D framebuffer, is about getting the GTE working better, or avoiding it all together. The interrupts that keep holding back psx4all don't need to run async. The pad input for psx4all doesn't need to be handled by SIO, making the dynarec potentially much more quick. The dynarec CAN run much faster, it's just poor design in its way.
I am working with another talented programmer at writing a PSX emulator from scratch. Strangely enough he was writing a dynarec for a PSX emulator, and found a lot of the strange ways of going about psx emulation like I did. We have some really great ideas and they seem to be very practical. I wouldn't dismiss psx emulation on handhelds such as the GP2X just yet.
Those who say the community doesn't affect what a developer does in his freetime...if it wasn't for the positive thinking Tapwave/GP2X community I wouldn't be programming anything related to gaming at all.
I'll clarify what I mean as needed. This post was more complicated than I expected.