Edit: sorry, I just noticed the original poster said the ASCII version works fine. Oh well.
Quoting: Epsilon
I think it might be just un-optimized code, as opposed to... I dunno. Joseph should know, since he knows how complex GearHead really is. peter cordes might know, too.
Well, gearhead does a lot of slow things, like crunching through the list of all gears on the gameboard many times as each AI decides what its going to do. The ASCII version doesn't take any CPU time while sitting there waiting for a keypress. That would be bad.
A quick test: the ASCII version running on Linux (Athlon64 3200+ (1.0GHz), 1.5GB RAM), walking around in Mauna, pressing right arrow about five to ten times a second, with 6 lancemates/pets, and a lot of crap in the field HQ, gearhead takes 30% CPU time. Holding down the arrow key makes my CPU frequency jump up to the max (2.2GHz). Bumping against an obstacle holding down the arrow key, my CPU mostly stays at 1.0GHz, and gearhead+xterm+X server take ~60% of the CPU time. This is in a 120x50 xterm. My vid card has good 2D acceleration, so that helps. I've seen gnome-terminal on some video cards be really slow when paging back and forth in a man page, but I don't have that problem on this machine (and I use xterm, which never has that problem, not gnome-terminal, anyway.) My version of gearhead is compiled with <tt>fpc -XD -O2 arena</tt>.
So gearhead should be playable on systems much slower than mine, esp. in ASCII mode.
I still haven't tried SDL gearhead on a different machine, and it doesn't work on this one. Oh well.
As for openGL: It's not so much the video card that "speaks" openGL. It's the drivers. If a program does something that the hardware doesn't support, the drivers have to do it in software, which will be dog slow. Like I said, I have no experience with SDL gearhead. If it eats CPU time while waiting for user input, that's a serious bug. (unless it's just from animating sprites that move while the game is idle.)