Well, on one hand it probably wouldn't be too much work to get the
software renderer up in one form or another. Relic had a bunch of C
versions of most (if not all) of its software renderer functions, but
after changing a couple constants in the code, it only partially works
(backgrounds and wireframe renders draw, but no polygon meshes, and it
tends to crash a lot). Still, its more of a matter of just sitting
down and digging away at the code for a good half-hour at the least,
which obviously is something I haven't really devoted to the project
in a while. =]
The real issue would be dealing with the fact that the GP2X does not
have a FPU, so all the floating-point math in the game would have to
be replaced with fixed-point math to get any decent performance - a
time-consuming endeavor to say the least. =] I'm not sure how much
performance would be affected by switching to fixed-point math, but
it's likely to run slower (the FPU on Pentium-class PCs performs
pretty well, and you also tend to gain some speed in cases where the
FPU can work in parallel with the CPU). Offloading the software
renderer onto the second CPU would probably help out a lot, although
it would mean rewriting most of the renderer. I don't know how CPU
performance compares to that of a Pentium PC; Homeworld required a
minimum of a 233 MHz Pentium II, but if that's with software
rendering, it should be able to run okay if rendering calculations
were done on the second CPU.
So, long story short, I'd say it's technically feasable, but it would
take a bit of work. If you port the software renderer directly,
performance would likely be an issue.
Thanks,
Ted