Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
This is the best result so far. If you post your config file we could try it on some different hardware.

I found one tweaks online, and just pasted it at the end of the q3config file. It might be possible to optimize it more.

// generated by mb`Gabr1el, do modify :)

// unbindall

// Spec
seta bot_nochat "1"
seta com_blindlyLoadDLLs "1"
seta scr_conspeed "999"
seta com_introplayed "1"
seta s_ambient "0"

// Personal Options
// seta cg_fov "100"
seta cg_drawGun "0" // 2

// Rail
seta r_railSegmentLength "0"
seta r_railCoreWidth "1"
seta r_railWidth "0"
seta cg_railTrailTime "100"
seta cg_teamRails "1"

// Team Messages
seta cg_drawTeamOverlay "0"
// seta cg_MaxlocationWidth "10"

// Player Bobbing
seta cg_runpitch "0"
seta cg_runroll "0"
seta cg_bobup "0"
seta cg_bobpitch "0"
seta cg_bobroll "0"

// graphics
seta r_mode "3"
seta r_picmip "5"
seta r_lodbias "2"
seta r_vertexLight "1"
seta r_detailtextures "0"
// seta r_lodscale "999" // c
seta r_subdivisions "80" // 999
seta r_roundImagesDown "999"
// seta r_lodcurveerror "999"
seta r_depthbits "16"
seta r_textureMode "GL_NEAREST"

// render settings
seta r_fastsky "1"
seta r_fullscreen "1"
seta r_customaspect "1"
seta r_ignoreGLErrors "1"
seta r_ignoreFastPath "0"
seta r_preloadTextures "0" // 1
seta r_simpleMipMaps "1"
seta r_colorbits "0"
seta r_texturebits "0"
seta r_dlightBacks "0"
seta r_dynamiclight "0"
seta r_glDriver "opengl32"
seta r_allowExtensions "1"
seta r_ext_multitexture "1"
seta r_ext_gamma_control "1"
seta r_ext_texture_env_add "0"
seta r_ext_compress_textures "1" // -
seta r_ext_compressed_textures "1"
seta r_ext_compiled_vertex_array "1"
// seta r_ext_compiled_vertex_arrays "1"

// sound
seta s_khz "11"
seta in_midi "0"
seta in_joystick "0"
seta in_midiport "0"
seta in_mididevice "0"
seta in_midichannel "0"
seta s_musicvolume "0"
seta cg_stereoSeparation "0.4"
seta s_rolloff "0.0"
seta s_compression "1"
seta s_separation "0.5"
seta s_mixPreStep "0.05"
seta s_mixahead "0.065" // 0.079 oder höher bei soundprobs
seta s_loadas8bit "1"
seta s_doppler "0"

// Promode, CPMA
seta cg_fallkick "0"
seta cg_damagekick "0"
seta cg_damagedraw "0"
seta ch_drawspeed "0"
seta cg_smokegrowth_gl "0"
seta cg_smokegrowth_rl "0"
seta cg_smokeradius_gl "0"
seta cg_smokeradius_rl "0"
seta cg_smoke_sg "0"
seta ch_drawWeaponSelect "0"

// Threewave
seta cg_drawping "0"
seta cg_itemlights "0" // mehr fps
seta cg_grapplemodel "0"
seta cg_forceGrappleModel "1"
seta cg_predictgrapple "0"
seta cg_teamGrapples "1"
seta cg_noProjectileTrail "1"
seta cg_teamGrenades "1"
seta cg_teamRails "1"
seta cg_selectEmpty "1"
seta cg_flagTrails "0"
seta cg_coloredliquids "0" // mehr fps
seta cg_pmFixes "1"
seta cg_noVoiceChats "0" // mehr ram
seta cg_drawTeamHealth "0"

// OSP Settings
seta cg_enableOSPHUD "0"
seta cg_deadbodyfilter "1"
seta cg_muzzleFlash "0"
seta cg_noProjectileTrail "1"
seta ch_statusbarFormat "0"
seta cg_drawDecals "0"

// tweaks
seta r_flares "0"
seta r_drawSun "0"
seta cg_drawFPS "0"
seta cg_drawTimer "0"
seta cg_scorePlums "0"
seta cg_gibs "0"
seta cg_marks "0"
seta com_blood "0"
seta cg_shadows "0"
seta cg_brassTime "0"
seta com_hunkMegs "128" // 84
seta com_zoneMegs "32"
seta com_soundMegs "16" // 8
seta cg_showPlayerLean "0"
seta cm_playerCurveClip "1"
seta cg_crosshairhealth "0"
seta cg_drawCrosshair "5"
seta cg_drawCrosshairNames "0"
seta cg_deferplayers "1"
seta r_facePlaneCull "1"
seta cg_forcemodel "1"
seta r_primitives "0"
seta cg_drawStatus "1"
seta cg_draw2D "1"
seta r_smp "0"
seta r_finish "0"
seta r_stereo "0"
seta s_leafnum "0"
seta r_stencilbits "8"
seta cg_drawkiller "0"
seta cg_lagometer "0"
seta cg_swapskins "0"
seta r_swapInterval "0"
seta cg_simpleItems "1"
seta r_inGameVideo "0"
seta cg_draw3dIcons "0"
seta cg_drawRewards "0"
seta cg_drawAttacker "0"
seta cg_drawSnapshot "0"
seta cg_drawAmmoWarning "0"
seta cg_errordecay "0"
seta vm_cgame "0"
seta vm_game "0"
seta vm_ui "0"
seta dmflags "0"
seta viewsize "100"
seta gl_polyblend "0"

// crosshair (einstellungen ganz unten um mögliche probleme mit der anzeige zu vermeiden)
seta cg_drawCrosshair "1"
seta cg_crosshairSize "16"
seta cg_drawCrosshairNames "0"
seta cg_crosshairHealth "0"
 
Thanks for posting that. I tried it on the powerbook and got 311fps which is a definite improvement, but the hardware is cheating. I would guestimate that it would be around 185 on hardware that meets the rules.

The datasheet has all possible PLL_CFG settings. Look for a file called MPC7455EC.pdf
 
  • Like
Reactions: LightBulbFun
We are on the Mac completely bound to the bus and memory bandwidth in this contest.

It's still a great contest, I've learned a lot on how to use Q3 as a test to find system bottlenecks. Q3 is a great benchmarking tool if you know how to use it for overall system performance, the only thing you can't really benchmark with the built-in timedemo is drive speed.
 
I tried this on a quicksilver with the config from bloedmage, an 867MHz G4, and a GF2 video card and got around 200fps. The regular quake3 from the garden was faster than ioquake. Maybe we could get some help from the compiler experts? The latest version of gcc with PGO and LTO might help us out with the quake executable.

It sounds like the winning configuration will be published, so at least it will be interesting to try that out on our G4 setups.
 
I tried this on a quicksilver with the config from bloedmage, an 867MHz G4, and a GF2 video card and got around 200fps.
That's a pretty respectable showing given the hardware. If you take a look at the videos for the top summations to the contest they have really cut the graphics down to bear minimum, so we need to learn what they did, then I think we maybe able to hit 250FPS+ with sound enabled.

Sadly the sound falloff for us on the Mac is pretty dramatic, I registered anywhere between 30fps-100fps of falloff. We just don't have the kinds of sound hardware and driver tweaks that the PC folks have, I have been told a tweaked PC only sees about 10FPS off falloff with sound enabled, so we are bottlenecking on sound, it's just too much extra stress on our CPU.

To benchmark without sound, just to get an idea:

Code:
s_initsound 0
snd_restart

With Quake3 SMP puts the sound on another CPU core in multi-core systems, but those are prohibited by the rules of the contest. Had that not been the case we would be on more equal footing with the PC as I only see about 20FPS of falloff on a dual 867Mhz CPU with multi core enabled.
 
  • Like
Reactions: Amethyst1
I tried this on a quicksilver with the config from bloedmage, an 867MHz G4, and a GF2 video card and got around 200fps.

So this is where I'm at:

quake3comp.png


I think this meets the rules. A MDD at 833/167 might be a little faster, but I think the software and config are where we need help.
 
So this is where I'm at:

View attachment 2012126

I think this meets the rules. A MDD at 833/167 might be a little faster, but I think the software and config are where we need help.
Basically we are bottlenecking on RAM and Bus speed with our G4's.

I have the 133Mhz Dual MDD and I'm waiting on my GeForce2 MX to arrive to get a baseline before I overclock the bus and RAM to 167Mhz, but even if what I say is true the best we are going to get out of that is a 20% gain in FPS. We have to figure out how to tweak the sound and reduce the graphics load on the RAM and Bus if we want to get much over 240FPS.

Also it's interesting that you have the 2MB L2 Cache but you are not seeing any speed improvements over what I get with only 1MB L2. I also clocked my L2 @3:1 vs the stock 4:1 ratio, but I only see about 7FPS gain. I was thinking that I would see more gain if I had 2MB L2, so I wonder what the deal is. A 25% overclock of the L2 only yields 3% in FPS and twice as mush L2 yields basically nothing.

With the GF4 MX I have overclocking the GPU from 270 to 275 and the VRAM from 200 to 220 also yields me about 3% gains so we know that it really isn't the graphics card that is the bottleneck.

Still, you need to get a baseline run with sound disabled, and also try the SDL sound subsystem vs the OpenAL sound subsystem.

Code:
seta s_useOpenAL 0
s_info

For some reason on my QS setting useOpenAL = 0 reverts to SDL sound, however on my MMD it reverts to some unknown sound, it also does this on my iMac Pro. s_info doesn't really report much for me to know what is driving the sound with OpenAL false. On the G5 I have it also reverts to SDL sound, tho on both the QS and the G5 the sound gets all choppy with SDL and I asked if this would be allowed and they told me no, the game must be playable, but I did see a very large gain in FPS using SDL sound vs OpenAL, but I'm not sure if I fix SDL sound choppiness( skipping ) if I'd still see these gains.

Setting s_khz has no effect in ioquake3 with OpenAL sound enabled and I can say for a fact that lowering the kHz of the sound will give you a very good speed boost in FPS. The sweet spot for PC's seems to be about 8kHz, so we have some work to do.
 
Last edited:
Just to complicate the situation we have the GeForce 2 which came in about a million configurations with unknown bit depths of the VRAM and if it was DDR or SDR in a given configuration.

The GeForce 2 MX was supposed to be NV11, but I have a GeForce 2 MX 400 AGP that is NV10, or claims to be via the device ID, but the GPU could still be NV11 and there is a separate way of doing a GPU check vs the PCI Device ID on nVidia cards.

As far as I can tell all the OEM Apple GeForce 2 MX cards identify as NV10 via the PCI Device ID, but seem to have the GPU clock speeds that suggest NV11( around 200mHz vs 120mHz ).

It does matter, or it would or will when and if we get to the point that the GFX card is the bottleneck.

The Geforce 256 DDR that has yielded the highest frame rates in the competition is NV10 for sure and has more rendering pipelines. We maybe able to unlock these pipelines on true NV10 chips used in the Mac, and that may or may not matter in FPS. We have to figure out if each of the cards we are using uses DDR or SDR RAM and if the bus is 128bit vs 64bit.
 
  • Like
Reactions: Amethyst1
This seems more important than doing chores :) , so I dug out a MDD and did some more testing.

First, the L3 on the quicksilver is definitely doing something, because it drops from 200fps to 140 if I turn it off.

I moved the drive to the MDD (so it should be the same software setup), and at 833/167 with the original MDD GF4 I get 236fps. Swapping the GF2 from the quicksilver into the MDD drops it to 207fps, and with L3 disabled I get 165fps.

I don't know how to do any tweaking with the GF2. I think it's a generic apple card that came in a quicksilver.
 
  • Like
Reactions: Amethyst1
I moved the drive to the MDD (so it should be the same software setup), and at 833/167 with the original MDD GF4 I get 236fps. Swapping the GF2 from the quicksilver into the MDD drops it to 207fps, and with L3 disabled I get 165fps.

I don't know how to do any tweaking with the GF2. I think it's a generic apple card that came in a quicksilver.
You are now bottlenecking on the GF2MX:)

I got my GF2MX 32MB OEM card and it as well is bottlenecking my MDD @867mHz/133Mhz, but the good news is now sound only drops my FPS about 10FPS because I'm not bottlenecking on CPU/RAM/BUS Speed.

Our notes on the OEM Apple GF2 MX cards is they all have DDR VRAM, even your Twin View, and the stock speeds are 200mHz GPU and 183mHz VRAM.

I can tell you how to use ReggieSE from Apple's CHUD Tools to software overclock you Twin View to get the best performance out of it. Really the VRAM is the bottleneck, overclocking the GPU won't do much.

My GF2MX can't take a lot of VRAM overclocking, I was able to go from 183mHz to 205mhz( 12% or 24%DDR ) and get some good gains in IOQ3. I went from 187FPS to 210FPS.
 
  • Like
Reactions: Amethyst1
I managed to unbrick the GeForce 2 MX 400 PC Card that I had bought before buying the Apple/nVidia OEM GeForce 2 MX.

After a little FCode ROM hacking I got the card working correct in my MDD, sadly the performance of the card is exactly the same as the OEM 2MX. I'm not 100% sure, but I thing the OEM 2 MX uses 128bit SDR VRAM that I've been able to clock to 205Mhz and the PC GF2 MX 400 uses 64bit DDR SDR VRAM that I've been able to clock to 375Mhz effective.

Tho nVClock on Linux PPC reports the 2 MX 400 is 128bit SDR VRAM running at 375Mhz, so I'm not sure what gives, but hey, now I have a 64MB GeForce 2 MX 400.

That won't help in our Quake 3 contest because @640x480 with the config file stripped down for speed we are not coming anywhere close to using more than 32MB of VRAM anyway, but if I want to crank up FSAA and all the other eye candy now I have 32MB more VRAM to work with.
 
...the PC GF2 MX 400 uses 64bit DDR SDR VRAM that I've been able to clock to 375Mhz effective.

That's a bit over my head, but in terms of bracketing what is possible: the MDD with the GF4 and a fast CPU was around 370fps, and with the 833/167 CPU it was 236fps. So it would seem that a GF2 of any configuration could not do much better than the GF4.

I have two GF2 cards available for experiments, but I think there is more room for improvement with the software and config file setup.
 
So it would seem that a GF2 of any configuration could not do much better than the GF4.
The GeForce4 MX is from the GeForce2 non-MX lineage. So I'd expect a GF2 MX to be (quite a bit) slower than a GF4 MX.
 
I think what we need to do is modify Quake3's textures to some ridiculous size like 4x4.

I built NetRadiant for the macOS on Big_Sur but I can't seem to get Quake3 support properly installed:

 
There's another contest thread, this time for quake2. Non-intel®™© are not invited, but out of curiosity I looked for quake2 on the garden and tried it on what seems like a contemporary ppc machine: a 533MHz G4 with a GF4 video card. I got 113fps with whatever the default settings were. Here is the thread:


Here is what I did:

download from here:


quaketwo.zip

Unzip, open QuakeII_1_0.toast image and copy contents to a different folder so the filesystem is non read only.

Quake II.app is the OS X port. I think Quake 2tm is the classic version? Use ` key (left apostrophe) to get the command line in game.

type:
timedemo 1
map demo1.dm2
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.