void gspWaitForEvent(GSPGPU_Event id, bool nextEvent) { if(id>= GSPGPU_EVENT_MAX)return; if (nextEvent) LightEvent_Clear(&gspEvents[id]); LightEvent_Wait(&gspEvents[id]); if (!nextEvent) LightEvent_Clear(&gspEvents[id]); }
void LightEvent_Pulse(LightEvent* event) { if (event->state == -2) svcArbitrateAddress(arbiter, (u32)event, ARBITRATION_SIGNAL, -1, 0); else if (event->state == -1) svcArbitrateAddress(arbiter, (u32)event, ARBITRATION_SIGNAL, 1, 0); else LightEvent_Clear(event); }