OpenAL:
So I'm maintaining my own MacOSX OpenAL implementation now.
http://icculus.org/al_osx/
I never realized we had so much mono8 data in ut2003...right now this is
going through a scalar codepath, but some Altivec can clear that right up.
On this 12" Powerbook, we're eating 2.5% of the CPU...this can become much
faster.
In real-world scenarios, __alcMixContext tends to beat up on the CPU cache
more than I'd like, too...iterating over an array of sources to find the
ones we are interested in is too expensive...this should really iterate over
an array of pointers (and maybe just an array of pointers to playing
sources)...the upper level mixing function, which just does some basic
state management before branching out to the lowlevel mixers, shouldn't even
show up in a Shark profile...on this system in ut2003, it's taking 0.1
percent of the CPU.
Other than that, the last notable optimization is to add AL_EXT_vorbis
support to Unreal...this basically doubles the performance of the music
rendering...probably save us 1 or 2% of the CPU (maybe less...but it's much
more cache friendly and avoids a ton of float-to-int (and int-to-float)
conversion, not to mention the Altivec fastpaths this adds.
It's hard to quantify the precise amount of CPU time AL is taking...obviously
some things show up in Shark, but (for example) calls to memcpy() will be
attributed to libSystem without manual research...it'd be nice if there was
a way for Shark to examine the callstacks and let you see all the CPU time
a library is "responsible" for, even if the CPU time is being spent in an
external library it called. Oh well.
Jon C wrote in to say it IS in fact working on a G3 system, and others seem
to be triggering an optimization bug in older gcc's. Please build with gcc
3.3 (or try this build).
Duke3D:
Stuff on the MacOS TODO list:
1) x86 compatibility for savegames
2) keeping Mac/PC networking in sync
3) Coming up with a server browser/matching service.
4) Add Cmd-Q as a quit key.
5) Race condition in audiolib causes occasional crash.
6) Ship it.
UTPG:
Please stop emailing me to ask if this is done yet.
Our source repository was experiencing technical difficulties for, well,
quite awhile. We're back online now, so we're gonna get all our changes
merged and move forward now. Hopefully there will be a new release soon.
Devastation:
Please stop emailing me to ask if this is done yet.
Server is out. Details here.
Beta 1 of the Linux client is avaiable. Get it.
Unreal Tournament 2003:
Going to get a patch out sooner than later. Nothing specific to report at
this time.
Postal 2:
Please stop emailing me to ask if this is done yet.
The karma source is in my hands now, but the legal paperwork is still
being done. :(
MOHAA:
Yes, I know the binary expired. A new binary will be along
shortly. Sorry about that.
Talked with EA today about Breakthrough, hoping source will be coming my
way shortly, once all the NDA stuff is cleaned up.
America's Army:
Linux 1.9 is live: http://icculus.org/news/news.php?id=1616
...and the Mac version: http://icculus.org/news/news.php?id=1622
If you're running on Linux and having trouble with Punkbuster because it
wants to write to a directory you don't have permission to, please read
this:
http://americasarmy.com/forum/viewtopic.php?topic=88357&forum=43
You do NOT have to run the program as root. We'll automate this for the
next release, but this'll get you running in the short term.
Other stuff:
I took a good portion of the day to clean up some open source projects
that have been simmering on the back burner for awhile. SDL_sound is now
at version 1.0.1 (a final stable release before new development can
begin), and I released my OpenAL on the world.
SDL_sound announcement: http://icculus.org/news/news.php?id=1727
OpenAL announcement: http://icculus.org/news/news.php?id=1728
--ryan.