Well talk about optimisation

After your advise and some extra analysis I found some major speed improvements. Compare the original intro1.exe(begining of thread) to the speed of intro1a.exe and you will see the difference.
On my 2003 ppc now I can hardly see the stars they are that fast (which is obviously a whole different issue now).
I will release the source later today, but it is too late right now and I have really overdone my healths quota. Anyway the optimisations were as follows:
1. Stopped calling g_gxdp.cbyPitch and g_gxdp.cxWidth from within the main pixel drawing loop
2. The same with all generic gapi calls within the loop.
3. And this was the major saving. Precalculated the copper bars in an array instead of processing withing the pixel drawing loop. I was forgetting that the things you can get away
with calculating on a pc, will really slow down a 266mhz processor

As this was a rush, I hardcoded the array to be 240 pixels instead of getting it from the screen width, but this will be changed, and copper bar colours are not quite the same (need to work this out)
See what you think