Gp2x Vs Gp2x Wiz, An Actual Performance Comparison


Internal Development
Mar 11, 2003
I've not seen a lot of numbers floating around, and Craig was asking me about some actual 'real world' performance on the Wiz vs GP2x so that folks would have a more concrete idea in their heads before ordering one or t'other.

As such, I put together a little testbed using OutcaST (Atari ST emu. a 16-bit general purpose platform with a wide assortment of games and demos and applications and so-on.)

Some things to consider..

- on the gp2x, it uses 'minimal lib', which is relatively low level. (ie: direct framebuffer access and not using intermediary buffes or the like, etc)
- on the gp2x, I disabled secondary core and mmuhack and so-on to be fair
- on the 2x, audio was enabled (but doing nothing)
- on the wiz, audio was disabled - this audio disparity will raise the Wiz numbers a _Touch_, but not much at all as ST audio is no big load; call it a few FPS counted against the 2x that shouldn't be there
- gp2x was a 200 with firmware 4.0 (while Wiz is on pre-release unoptimized firmware)
- by far the largest factor is this.. Wiz was on GPH supplied SDL layer (not low level like minimal)
- ie: its SDL (so indirect access to display and joystick etc)
- ie: its SDL in software mode (no hardware blits etc, which isn't a big deal for this since I do row by row scren updates)
- ie: its SDL so having to lock/unlock/updatre screen (lock/unlock don't do anything in this case, but its a lot of extra function calls and the screen update sucks)
- ie: its GPH SDL, meaning its extra unoptimized
- ie: Its SDL meaning that I'm updating the display essentially when vert blank hits the bottom, and not every row. GP2X one draws raw to screen row by row so is very accurate; SDL is EXTREMELY slow to do row by row updates, so to give Wiz a chance at performance I made it update at VBL bottom so its row by row rendered offsceen, then update the entire screen at once; itd accurate looking, more or less

Anyway, to be a true fair test I should install Open2x onto my F200, and then run the _Exact same binary_ on it, using SDL. That would still be a hardware accel SDL against a slow software only SDL, but it woudl be a better test. But I didn't do that yet.

So all told, the gp2x one is running 'faster' (closer to hardware), a little slower (audio on)
All told, the Wiz is running slower (software SDL), slightly faster (no audio)

I forget most of the game samples and such, but they worked out identical %age speed or more (for Wiz), but the stressier test is just sitting at the big green GEM Desktop.. that piece of code in the OS is a busy-loop that chews through performance hard:

Wiz: 70fps (on slow SDL!)
GP2x: 49fps (on fast direct hardware!)

In actual game performance and demos, the emulated CPU is being worked less hard in a number of ways, while the graphics system is doing a little more work (not much of a graphics system on the ST, but anyway), so in gaming cases it was usually around the same %age upwards to another 30% faster for both (ie: gp2x would go to 60-70fps, while Wiz would hit up to 90-100fps).

Again, this isn't a fair test and my methods were a little crude.

Better test results if I get open2x going, and when a hardware lib gets finished for Wiz (several people are working on that.)

Depending how you want to call these things.. you could say 30-50% performance increase as-is, and thats when the gp2x has an unhealthy advantage over the wiz. (ie: 49 * 1.4 = 70, so about a 1.4 multiplier in performance.)

If I get fre time I'll do a better benchmark.. some popular games and GEM for various operations, and under various environments (open2x, etc).

At least it means that Wi folks can have a OutcaST ASAP if they want it :)



FWIW, the mmuhack didn't really help or hinder outcast, so no biggy; the emu can be made to run faster on the 2x, but my point was not to try a perfectly ideal gp2x setup against the pre-release total not ideal Wiz.. that would not be fair; I'm assumig the desired test is a decent real world estimate of gp2x, versus a not yet real world Wiz, so I tried to approximate that situation. Bear that in mind. (And let me know if my metric is no right.)
Puck2099 made a GP2X (minilib & ramhack) Vs Wiz (SDL) performance comparison in the gp32spain forums using his Fenix port, and the Wiz performance was about 2x the GP2X one.
I imagine Fenix is more CPU-bound than SDL-limited (since its an interpreter after all), so that would help the numbers a bit,

Once a minimal-lib type kit sorts out for Wiz, the numbers should be very good, but already not bad!

So the rumor I heard that the RAM bandwidth was crippled might not be true after all?
Skeezix, thanks for spending the time looking into this.

Those are really impressive results considering how "its extra unoptimized"
No problem; I always wanted to put together a SDL version of the emu anyway (it runs on Mac and Linux now :p) (Visual C compiles somethign in the cpu incorrectly (or gcc does and the emu relies on it), so it doesn't work for windows inmy usual build environment, which is a drag.. but of course, there are better emus for desktop platforms anyway.)

Wiz is obviously superior to gp2x (duh), and inferior to PAndora (doh); Wiz is an evolution of the gp2x, and is cheaper than the Pandora. Wiz is still primarily an evolution and retro-gaming and perhaps multimedia machine while Pandora is multifunction; high res, keyboard, wifi etc. Its a very different game so really Wiz and Pandora shuldn't be compared too much..


Wiz clock was on 500 mhz Skeezix?

GP2X =200 mhz and Wiz= ¿?


rlyeh said:
nice and promising numbers there :)
I can´t see that at all, maybe i am totally blind :p

I f Wiz numbers are at 200 mhz i am agree with you, but i supposse that Wiz numbers are at 500 mhz.
Last edited by a moderator:
Rivroner said:
Wiz clock was on 500 mhz Skeezix?

GP2X =200 mhz and Wiz= ¿?


rlyeh said:
nice and promising numbers there :)
I can´t see that at all, maybe i am totally blind :p

I f Wiz numbers are at 200 mhz i am agree with you, but i supposse that Wiz numbers are at 500 mhz.

these are their default clockspeed so wouldn't exactly be unfair.
Last edited by a moderator:
Interesting, but rather what i expected.

If you set the Wiz to 200MHz you might be able to get an idea of how the unoptimized SDL is comparing to minimal lib.
Some have suggested that I should try the most optimized situation for the GP2x versus the 'most optimized, in its current beta form' for the Wiz, to get that picture as well.

(I've gotten bombarded with questions about this post.. eek :)

I suppose I should've done an arstechnica style job, with photos along the way, well defined metrics, and so on. I don't have time for that ;)

But we'll see.. I may run some more numbers.