MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / EndIOP

Function EndIOP

pcsx2/Sif1.cpp:148–166  ·  view source on GitHub ↗

Stop processing IOP, and signal an interrupt.

Source from the content-addressed store, hash-verified

146
147// Stop processing IOP, and signal an interrupt.
148static __fi void EndIOP()
149{
150 sif1data = 0;
151 sif1.iop.end = false;
152 sif1.iop.busy = false;
153 SIF_LOG("Sif 1: End IOP");
154
155 //Fixme ( voodoocycles ):
156 //The *24 are needed for ecco the dolphin (CDVD hangs) and silver surfer (Pad not detected)
157 //Greater than *35 break rebooting when trying to play Tekken5 arcade history
158 //Total cycles over 1024 makes SIF too slow to keep up the sound stream in so3...
159 if (sif1.iop.cycles == 0)
160 {
161 DevCon.Warning("SIF1 IOP: cycles = 0");
162 sif1.iop.cycles = 1;
163 }
164 // iop is 1/8th the clock rate of the EE and psxcycles is in words (not quadwords)
165 PSX_INT(IopEvt_SIF1, /*std::min((*/sif1.iop.cycles/* * 26*//*), 1024)*/);
166}
167
168// Handle the EE transfer.
169static __fi void HandleEETransfer()

Callers 1

HandleIOPTransferFunction · 0.70

Calls 2

PSX_INTFunction · 0.85
WarningMethod · 0.45

Tested by

no test coverage detected