Stop processing IOP, and signal an interrupt.
| 146 | |
| 147 | // Stop processing IOP, and signal an interrupt. |
| 148 | static __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. |
| 169 | static __fi void HandleEETransfer() |
no test coverage detected