I don't think the code in pspgl_ge_init() is the same as Holger's original version. In your implementation, you set the registers which are "lazy", so they aren't written until all pending changes are flushed. For starters, you don't set the ge_reg_touched bitmap for the registers in the init table, so it seems like only registers that are updated elsewhere in the API will ever be sent during a flush. I tried doing this, and it still didn't work. I think the problem here was that some of the registers used during init were either being overwritten by other OGL calls or they weren't being sent in the correct order. Holger's version of pspgl_ge_init.c just queued the entire init list as sceGuInit() does.