Friday, August 10, 2012

ioQuake3 update for Haiku

Over the past several days I've been playing with some of the open sourced id code on Haiku. As part of that I decided to try updating the version of Quake3 that was in Haiku Ports.

Based on some of the previous patches that were submitted, and some invaluable help from the folks in #haiku, I updated the ioquake3 open source version to the latest revision (r2306 as of today) and got it to compile and run again.

You need one of the latest Haiku nightly revisions, an install of SDL 1.2.15 from Haiku Ports (or from installoptionalpackage), and the proper pak files (either official ones from id with the accompanying q3key file(s), or possibly some open source versions but I'm not sure about those) as prerequisites. It won't compile and run properly without these.

Currently the frame rate is unplayably low (2 to 4fps on default settings) due to the current lack of hardware acceleration. So even with the details turned down etc you're probably not going to get more than about 7 to 10fps at most.

I was playing it yesterday just fine on Haiku r44483 gcc2h on bare metal (installed directly to my hard drive), but today when I was finishing up the patch and bep file on Haiku r44507 gcc2h while running under virtualbox, I kept getting KDLs (system crashes to the kernel debugger) after I exited the game.

I've submitted the updated bep and patch to Haiku Ports, and a bug report about the KDLs to Haiku's Trac.

If you want to try this out yourself, first make sure you have HaikuPorter installed (follow the directions on the main HaikuPorts page), then grab the r2306 bep and patch I submitted and place the bep file in "/boot/common/develop/haikuports/games-fps/quake3/" (you'll probably have to create the "games-fps" and "quake3" folders), and then place the patch file in "/boot/common/develop/haikuports/games-fps/quake3/patches/". Then run "haikuporter -i quake3" to compile and install it.

I haven't tested this under a gcc4/gcc4h build yet, so I have no idea if that works or if it performs any differently.

Although I'd like to hope that this might help motivate some folks to work more on the hardware acceleration issue, I think the issue is more complex than that. The up to date Mesa builds require gcc4, and probably any related stuff like current hardware drivers for the video cards etc... so it's impractical to consider both a fork and a backport of these to gcc2 that would have to be maintained independently etc.

So we probably aren't going to see a lot of improved features like this in Haiku until after R1 (the first full official release of Haiku, meant to have binary compatibility with the last release of BeOS, which was gcc-2.95.3 based) when the builds can switch to gcc4 as the default and pull a lot of modern code into the main official build.

The "Team Arena" mission pack seems to work fine as well, as shown below.

6 comments:

  1. Hi! What is your CPU? Maybe Quake 1, 2 would be work better?

    ReplyDelete
  2. It's an Intel Core i7 965XE quad core, hyper threaded, 3.2ghz.

    http://ark.intel.com/products/37149/Intel-Core-i7-965-Processor-Extreme-Edition-%288M-Cache-3_20-GHz-6_40-GTs-Intel-QPI%29

    I'm currently focusing my tinkering on Quake 2 precisely for this reason. The old BeOS build of it plays incredibly fast (in fact it makes me think it's lacking proper timing code, or at least proper code, since it runs at least twice the speed it should, making it almost uplayably fast), but the sound doesn't work and it still locks up on exit for me. Since my monitor died though I've been holding off on working more on it since it's too frustrating trying to juggle all the terminals and tracker windows etc on this little 1024x768 15" CRT. Hopefully my new 24" flat panel will arrive in a few days and I can get back to 1920x1200 and being more productive. ;)

    ReplyDelete
  3. llvmpipe is better than softpipe( Phoronix tests, Intel Sandy and Ivy Bridge ) for software rendering, but Haiku not have it.

    I have a Athlon 64 3500+, so I will not play.

    http://www.haiku-os.org/legacy-docs/bebook/BGLView_Overview.html

    Did you ordered this Dell about which I wrote?

    ReplyDelete
  4. I ordered the Dell U2412M e-IPS. :) I wanted the 2410, but I couldn't justify both the wait while I saved up the extra money, or the price jump from $289 to $512. :(

    Thanks for all the helpful information! I spent several hours reading it over and going back and forth about which one I wanted, but in the end I decided to just go with the U2412M and see how I like it when it gets here (which should be around Tuesday next week).

    ReplyDelete
  5. I can not find direct comparison between llvmpipe and softpipe.

    http://www.phoronix.com/scan.php?page=search&q=LLVMpipe

    ReplyDelete