Posted By: wraggster
PeterM posted this on his blog:
It’s been a while since I bought a GP2X and I’ve not done much coding for it. Partly this is due to the firmware start-up time — it takes about a minute to get from the Makefile copying the ELF onto my SD card to actually running the build.
I don’t know if this is a Linux problem (not too likely) or a GP2X problem (rather more likely), but a 30 or 40 second start-up delay for a portable game playing device is completely insane. I don’t know how GPH sleep easy at night!
But anyway, for a while I’ve had a GameCube port of Quake 2 in the works. It looks like it’s going to run fast enough but as usual with Quake 2 ports, memory is a problem. I’ve stripped out some memory hogs and tried to shrink down some allocations so while I’m fairly sure Quake 2 for GameCube will happen, I can’t make any promises.
In order to make Quake and Quake 2 development easier, as well as their GameCube versions I maintain a Win32 SDL version of both games. This lets me quickly compile and test platform independent changes without messing around with SD cards or adaptors or waiting for devices to boot.
Given that the GP2X comes with SDL installed I thought I’d quickly adapt my GameCube Makefile for a GP2X version and see how well it ran.
SlowCPU is sloooowwww!
The GP2X has no FPU and Quake 2 does a fair bit of floating point maths, even in the innermost span renderer. The end result is a frame rate just over 5 frames a second (compared to the GameCube’s “easy” 50 FPS).
The Cube is so cute and cuddly, but inside its cheeky purple shell lives a beefy monster!
Anyway, I noticed a few easy performance fixes and by making some changes managed to pretty much halve the time taken to render world spans on the Win32 build. I would imagine the GP2X build won’t see nearly that improvement though as I’ve not yet done any fixed point conversion.
I’ll leave the details of the changes for another time.