Some News Of Things To Come...


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. :)
 
...
A thought that comes to mind would be...
Is a game so intense that it requires a "2D accelerator", or so poorly designed/programmed it requires acceleration?
I say psx4all is to blame, not the lack of acceleration.
 
This clarifies some things nicely. Unfortunately I get the feeling some of the GP2X's 'hidden' hardware faults that doesn't manifest themselves until far into development, like the ones I encountered, that make illogical things slow and unreliable, might arise to complicate the plan, which is why I don't say that the GP2X will be able to do it. Honestly, there is no good reason it couldn't be managed with the spec the GP2X has. With the ARM920T and ARM940T working in tandem at ~260 MHz+, 64MB of RAM, a 320x240 display, and a blitter you should be in good shape, but weird things like to show up like faults in how the CPUs communicate, how they read/write from RAM, the blitter's deranged behavior, etc. Were it not for this, I'm sure 60 FPS operation in a great deal of games would be achievable using one core for the R3000A operations, and the other for a GTE, and audio/input/etc. relegated to whichever core was convenient (probably the 920T.) This would of course still probably take months if not years of dev time to really fine tune as you get into the 'absurd levels of optimization' territory.

So, doable, but not always worthwhile. It's my suggestion developers of projects that would take so much time and effort invest their time in projects that are of more realistic and approachable scale, like rewriting the graphics handling of a popular SNES emulator, because of practicality. This shouldn't be misinterpreted into me saying, 'if X dev wants to work on a PSX emulator for 18 months to achieve near full speed operation in most games, they should not do it because I find it unrealistic". As I said, any developer's investment of his or her own time is purely their perogative.

The misconception I wish to dispel is one too prevalent on this forum-- that if a group of rabid emulation fanatics pester a developer enough he can crank out a full-speed PSX emulator in a few months. Seen it before, I will see it again-- every few weeks someone bitching and moaning about why there isn't a new version, as though the developer were under obligation to write free software. This kind of shit takes a massive time, a mental and a physical investment, and the impression that a developer can crank out a PSX emulator at the drop of a hat is dangerous.

It also breeds the impression that the impossible is possible, 'with time'. I have seen persons here stating that things like N64 Emulation at acceptable speeds is possible, which is a rumor so obnoxious and repeated anything that'll foster and encourage such ridiculous thinking should be dispelled. Though, perhaps this behavior is unavoidable.

A thought that comes to mind would be...
Is a game so intense that it requires a "2D accelerator", or so poorly designed/programmed it requires acceleration?
I say psx4all is to blame, not the lack of acceleration.

I have to admit I was pretty surprised that sending 4 320x240 images for BG layers to the display, as well as a handful of sprites (let's say, 50+) of approximately icon size, was enough to overload the blitter and bombard the bus, lagging the ARM920T horribly. These are the sort of strange unforseen behaviors inherent to the GP2X that aren't encountered on hardware that is more logically designed, and I can't bring myself to tolerate it when such behavior is exhibited with 20% or less of the desired intensity of the game's graphics. I still have complex game logic to handle, as well as audio decoding, and it's not very conducive to those tasks when the ARM920T must be burdened with something the blitter should be able to handle! The GP2X's blitter is a component of an SoC that was only meant to display an image from a DVD, or a scaled image from a camera lens or SD card, so it's to be expected that the blitter and its interconnects to other MMSP2 components would collapse under the pressure of a truly stressful game situation. I highly doubt that my software, nor yours, is fully to blame for the exhibited performance defecits.
 
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.

I'll clarify what I mean as needed. This post was more complicated than I expected. :)

I guess it comes down to what ones standards are for how a game runs. PSX emulation is obviously not impossible to the point that the game loads and when you move the stick the character moves. To me playing a game that takes up a huge chunk of the SD is very choppy with huge frameskip and has stuttery sound while overclocking the cpu to the point of getting 5 minutes out of a fully charged set of batteries is just not satisfying. Maybe others don't mind and just the sight of the game running at something close to animation is exciting to them.

To me I consider a game playable if it runs at full speed with a frameskip of 2 or less with full un-garbled sound. That is impossible on the GP2X hardware for PSX for most games. I am sure a few simple ones could run that well.

Afterall SNES with transparencies is proving to be just out of reach and that has a MUCH weaker CPU and graphics capability. I think that SNES is probably possible but everyone that seems to touch it also gives up before it is finished.

I don't think it is about you making the right choices in going about psx emulation, except maybe for the hardware that you chose to attempt it on. You have done a great job with it as a coder but hardware limitations are a fact of reality. There is no coder that can overcome that no matter how skilled.


PSX:

MIPS R3000A-compatible (R3051) 32bit RISC chip running at 33.8688 MHz
with Geometry Transformation Engine and the Data Decompression Engine.
Bus Bandwidth 132 Mbit/s
Instruction Cache 4 kB
Data Cache 1 kB (non associative, just 1024 bytes of mapped fast SRAM)
Geometry transformation engine
This engine is inside the main CPU chip. It gives it additional (vector-)math instructions used for the 3D graphics.
Operating Performance of 66 MIPS
360,000 Flat-Shaded Polygons per second
180,000 texture mapped and light-sourced polygons per second
Data decompression engine:
Compatible with MJPEG and H.261 files
Operating Performance of 80 MIPS
Directly connected to CPU Bus
Graphics processing unit:
This chip is separate to the CPU and handles all the 2D Graphics processing, which includes the transformed 3D polygons.
Maximum of 16.7 Million Colors
Resolutions from 256×224 to 640×480
Adjustable frame buffer
Unlimited Color Lookup Tables
Maximum of 24 Bit Color Depth
Maximum of 4000 8×8 pixel sprites with individual scaling and rotation
Emulation of simultaneous backgrounds (for parallax scrolling)
Flat or Gouraud shading, and texture mapping
Sound processing unit
Features:
Can handle ADPCM sources with up to 24 channels and up to 44.1 kHz sampling rate

Emulating all of that on a ~200 MHz ARM in real time seems to be a tall order. Good luck though.
 
Last edited by a moderator:
@zodttd

Thanks for this very interesting post. It is always enjoyable to read your postings.
One thing makes you sympathic: You never blame or complain over the hardware. You try your best to get things going. I think this attitude shows that you are a very good and skilled programmer.

Good luck to all your projects! :)

Regards,
Stephan
 
god thanks zodttd for your post! and davec and epicenter, its great to see that you try to defend your argumentations but really you lost now. zodttd explained everything, he tried to make it clear that it can happen and all those talented coders think it is possible so why dont you just give up. you are just still fighting because you don't want to give in. that's so childish and i don't think that you two are such persons because in the end you seem to be very clever (and i mean that! i'm not ironic here)
please let this bashin die! you two, davec and epi, and all the others too.
lets wait and see what comes.
psx emulation is very hard and takes much time but its the developers choice and what they really need is our support!
thank you!
 
I don't get what on earth has happened to this thread... excuse the paraphrasing...

zodttd: "I believe it's possible to get playable speeds on a PSX emulators, here are some reasons why..."

DaveC:"grumble grumble grumble, it will never be good enough for me to be considered playable, good job though."

Epicentre:"You are wasting you time, you are wasting your time, do SNES emulation instead"

It's like some weird-assed drama show... >_>

If zodttd thinks it's still possible nased on the fact of how his PSX emulator has progressed... then why try and forcefeed the idea that's it's not possible... I just can't comprehend this logic... especially for a project that is done in one's free time.
If it were a commercial project, to develop a new emulator for a system and you only have X budget, and Y time... then I could understand this barrage of "suggestions" to move onto a more "profitable" emulator project.

In any case Zoddy, I wish you luck with all your future endevours, and thank you for battling to get PSX emulation to even the stage it is at now!
 
I don't mind 'waiting and seeing' if there doesn't have to be a thread from an overly-idealistic loudmouth in a hurry to play FF7 at 60 FPS with full audio emulation every day. But as it stands, like N64 emulation, sometimes encouraging the hope of something that might 'maybe someday sort of kind of be possible' is adding fuel to a fire of aggravating and ultimately worthless flamebait threads. Until there are new developments like actual new releases or developments there is no point arguing over this nonsense. At any rate, Zodttd in no way said 'all PSX games will run at 60 FPS perfectly!', so stop prancing around like you've been awarded some shiny victory trophy. We are arguing hypothetics here.
 
I don't know what compels me to keep watching this thread. :rolleyes: Just about the only PSX game I can name is Final Fantasy, and that's simply because I read about it here.

It really has come down to the faithful versus the rational. Every time a bell rings, an angel gets its wings! If you believe in fairies, clap your hands! :D

Peace, brothers. The GP2X is a noble beast.
 
god thanks zodttd for your post! and davec and epicenter, its great to see that you try to defend your argumentations but really you lost now. zodttd explained everything, he tried to make it clear that it can happen and all those talented coders think it is possible so why dont you just give up. you are just still fighting because you don't want to give in. that's so childish and i don't think that you two are such persons because in the end you seem to be very clever (and i mean that! i'm not ironic here)
please let this bashin die! you two, davec and epi, and all the others too.
lets wait and see what comes.
psx emulation is very hard and takes much time but its the developers choice and what they really need is our support!
thank you!


Well I wouldn't declare a "winner" just yet.

Until the PSX is running with FS1 and fullspeed with sound you can't say "you lost now" yet, wait and see.

It is not "bashin" either. We are just giving our thoughts about how far PSX will get on hardware such as this. Zod has done a great job with it. I do admire his relentless coding on this (too bad no one was as determined with a SNES emu, that is actually doable). I am not bashing the hardware either. It is great for what it was made for.
 
Last edited by a moderator:
I'd like to see this mystical 2D shoot 'em up that the GP2X can't handle. Because the screen shots I saw looked sub Neo-Geo, and we all know we can *emulate* some pretty awesome shooters on the neogeo already.

I think you need to look at your code again if you can't get it to run fast enough, not blame the hardware.
 
aww epicenter really....

At any rate, Zodttd in no way said 'all PSX games will run at 60 FPS perfectly!', so stop prancing around like you've been awarded some shiny victory trophy.

did i say that? no! and i don't wanna win any battle. you are so negative really. i think playable and enjoyable is 25fps with good sound (doesn't have to be perfect) and that should be within reach.

and the world explodes tomorrow... arg

and davec i think we will see a nice snes emu in the future. what we have now is really good already.

now all, behave
 
I'd like to see this mystical 2D shoot 'em up that the GP2X can't handle. Because the screen shots I saw looked sub Neo-Geo, and we all know we can *emulate* some pretty awesome shooters on the neogeo already.

I think you need to look at your code again if you can't get it to run fast enough, not blame the hardware.
I do love your ability to judge old screenshots of an engine test as a complete game. That's truly an admirable skill. The shots I sent you contained only 2 complete graphical layers and extremely few sprites, and therefore ran fine. If you had any reading comprehension skills whatsoever, you'd have picked up on that actual tests with realistic quantities of sprites at the desired intensity level proved to yield insufficient performance due to GP2X hardware faults-- BECAUSE YOUR SYSTEM IS BASED AROUND A DVD PLAYER'S PROCESSOR. You're a simpleton and your business is built on garbage.

I also liked the part where you shrugged me off because the game wasn't 3D, "like Odonata", not even realizing Odonata is a horrible 2D game using pre-rendered 3D graphics dithered to 256 colors. You are an ignorant fool and you have no business running a company relating in any way shape or form to gaming or consumer electronics. You're also the liar who put this nonsense in people's heads about your beloved (terrible) licensed game 'Payback' having HDR lighting technology and full-scene antaliasing. The only thing that makes you better than the Gizmondo crew is that you aren't a mobster. You make me fucking sick.

DaveC said:
Well I wouldn't declare a "winner" just yet.

Until the PSX is running with FS1 and fullspeed with sound you can't say "you lost now" yet, wait and see.

It is not "bashin" either. We are just giving our thoughts about how far PSX will get on hardware such as this. Zod has done a great job with it. I do admire his relentless coding on this (too bad no one was as determined with a SNES emu, that is actually doable).
Agreed, all of Zodttd/Unai's work is admirable, the only thing we've disagreed with is the feasibility of the project and its invested time versus returned results at the end of all that time spent. There are some people who will never understand a concept like this, and believe a handful of pixie dust and dreams will make PS3 emulation at 60 FPS feasible with the GP2X underclocked. Sadly GP32X is full of people like this. While in reality, a lot of dreams and pixie dust coupled with $1.50 will get you a cup of coffee.
 
Last edited by a moderator:
and epicenter you are starting to make me sick... really

could we maybe all calm down now? i think i was wrong thinking you were grown up. and if you are you don't reply on my post now!
 
When I spoke to the person I'm working with to write a psx emulator from scratch with, he said something that applies here. We calculated that you would have to accomplish a N64 cycle within an average of 3 cycles on the PSP. This is very difficult due to the usage of 64bit instruction sets on the N64 being reworked to using the instruction set on the PSP which is 32bits and therefor acts accordingly.

DaveC / Epicenter:
What I want to know is, what do you have to go on that makes PSX emulation not able to run a game at 60 FPS under 0 frameskip, let alone 1 or 2? What makes it possible on SNES instead?
My opinion on SNES emulation is that it's just as difficult to do as PSX, if not more. Performance factors in not only the emulated system, but what is currently known about handling it within an emulator.

NeoGeo emulation might be better along than SNES emulation due to coding practices and techniques passed along by emulator writers. It's always handy to be able to plug in code written by a FinalBurn author, especially when it's well written. Unfortunately for GBA emulation, most were "stuck" with VisualBoy Advance, which has been ported to many systems and just not released due to poor performance, one being hte Tapwave Zodiac. VisualBoy Advance works great on a PC, but was written poorly using very huge switch statements that crippled most compilers. It was possibly a driving force behind gpSP for the PSP by Exophase. GBA emulation was deemed impossible on the PSP as well, due to the assumtion that VBA was the best attempt. Now gpSP showed them wrong by offering something better.

So tell me why PSX emulation isn't practical. Then tell me why SNES emulation is. Bonus if you can explain how GBA emulation isn't possible either. I definitely couldn't explain it.


I really would like these questions answered, and not cut off by a moderator before then. I don't understand what makes SNES emulation "doable" but PSX impossible. It truly makes no sense.

I actually have a fullspeed version of psx4all running on a DVD Player. The iStation V43 is the system I'm speaking of.
 
Pfew, that was a long read. Alrighty, so here's the 2 cents of someone who can't program worth S***, but understands hardware like nothing else:

A. I agree with epicentre and dave, but i also agree that the way they put thier argument out there was a bit too...rough. Seriously, i would MUCH prefer to have the talent pouring into this emulator working on something just as challenging, but far more likely to actually occur: a working, fullspeed, GBA emulator.

B. I (and i will admit this) am one of those people who bought a GP2X mainly because i heard it emulated the PSX. I was told this flat out. Wanna know where? Wikipedia! The article told me blatently that the 2X could handle PSX emulation. I see that someone has since edited the article, which i hope will result in less people buying one solely because of this "dream".

C. Zottd, Unai, i respect your dedication to this project, really i do! But seriously, Could you at least admit that only a VERY tiny amount of games, and mainly rather boring ones, are ever going to run? The games that i bought my PSX for (FF, Spyro, LOTD, etc) they aren't ever going to run. And when i have around 500 mind-blowing RPG's for the SNES or genesis, i am very unlikely to clear off half my SD card just to play a rather boring PSX game that stutters.

D. To everyone who has come in here and exibited what could be easily called "Fanboyism," Please, PLEASE, Shut up unless you actually have a single clue what you are talking about. Especially the guy who suggested that we just emulate FF7 itself, rather than the hardware. :rolleyes: The chances of it ever being fullspeed are Nil,. and if you actually bothered to listen to what Epicenter was trying to explain with his long drawn out tech-analysis's, you would probobly understand that. Trying to get fullspeed PSX on the GP2x is the litteral equivalent of trying to get fullspeed Xbox360 emulation on a top-of-the-line gaming rig. The Hardware just cannot handle such loads. And the 2X's hardware is flawed on top of that.

So in conclusion, While i have the utmost respect for what Zodttd and Unai have done, and are planning to do, (my hats off to you fine gentlemen). I do believe that it's time that we all realized that while having a portable PSX would be very cool, and would be neat, and fancy, etc, It is simply not practical in the most remote sense, and someone said it right "It is a gimmick." There are, however, several emulation options which have far more potential than the PSX that have been sadly neglected by everyone. Dosbox being one (i see that Zodttd is taking that one up, so kudo's to you again!). Another one being GBA emulation, which has never advanced past a techdemo stage as far as i know. And the third being fullspeed SNES emulation W/transparencies.

In regards to the SNES emulation, i really don't understand some of the reasons why it shouldn't be progressed. :huh: Because its moderatly playable, does that mean it should be neglected now? Are we going to become a community that says "well, its half-done, so thats good enough?" I can barely play Chrono trigger on it (A game which, by concensus, is claimed to be THE best RPG ever created, Faaaaar exceeding FF7) due to transparency issues and horrid slowdowns in some battles. I especially dont understand the guy who siad that he didnt care about the SNES because he "never owned one." WTF man? Why would you even buy a GP2x then? 90% of the systems it emulates came out before the SNES did. I never owned a SNES, but that doesn't stop me from playing the Amazing, AMAZING games that it provides, many of which are better than most games being produced today! If we had some of the great talent exhibeted here working on perfect SNES, who knows? We may even see Starfox, SuperMario RPG, Kirby, Or even Starocean (with its bizzare graphical conundrum) playable within the near future! But of course, if everyone is just going to say to hell with it... ;)
 
Let the PSX emulation development continue guys, and thanks for the informative posts zodttd :)
 
Back
Top