The problem is that it does not seem to apply to untextured objects :(
Is it normal? What should I do in this case? :)
(except multiplying my vertex colors with current tint, I'd like a general purpose solution without overhead ;))
Yes, indeed it's normal that sceGuTEXFunc only applies to textured objects ;)
Assuming you need the blend stage for the real alpha blend, the only thing I can think of to do is have a 1pixel texture map that is applied to the quad/triangle with the color you want it to have. That 'texture' can be generated easily (write one int to (VRAM_BASE + 480*4)) on the fly and wouldn't drain the texture hardware too much thanks to the texture cache (set all u/v's to 0 - if the hardware is clever it notices it's calculating a zero delta), and you're left with the overhead of supplying u/v coordinates with your 'untextured' stuff plus a little from the 'texturing' stage.
Dunno if that would be faster than using real untextured mode and applying the tint to your vertices with a fast software blend.
Thank you very much Raphael :)
I think I'll rather do a software blend then, because with your method I would have to sync the GE in case of repetitive calls ;)
Well, you could avoid the sync if you increase the 'texture' address so you make use of the whole framebuffer stride and wrap around once you reached an upper limit (maybe the 32x32 quad in that area, so you have 1024 repetitive calls before the textures overlap and you need to sync).