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

Function WriteFIFO_GIF

pcsx2/FiFo.cpp:118–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

116}
117
118void WriteFIFO_GIF(const mem128_t* value)
119{
120 GUNIT_LOG("WriteFIFO_GIF()");
121 if ((!gifUnit.CanDoPath3() || gif_fifo.fifoSize > 0))
122 {
123 //DevCon.Warning("GIF FIFO HW Write");
124 gif_fifo.write_fifo((u32*)value, 1);
125 gif_fifo.read_fifo();
126 }
127 else
128 {
129 gifUnit.TransferGSPacketData(GIF_TRANS_FIFO, (u8*)value, 16);
130 }
131
132 if (gifUnit.gifPath[GIF_PATH_3].state == GIF_PATH_WAIT)
133 gifUnit.gifPath[GIF_PATH_3].state = GIF_PATH_IDLE;
134
135 if (gifRegs.stat.APATH == 3)
136 {
137 gifRegs.stat.APATH = 0;
138 gifRegs.stat.OPH = 0;
139
140 if (gifUnit.gifPath[GIF_PATH_3].state == GIF_PATH_IDLE || gifUnit.gifPath[GIF_PATH_3].state == GIF_PATH_WAIT)
141 {
142 if (gifUnit.checkPaths(1, 1, 0))
143 gifUnit.Execute(false, true);
144 }
145 }
146}

Callers 1

TAKES_R128 _hwWrite128Function · 0.85

Calls 6

CanDoPath3Method · 0.80
write_fifoMethod · 0.80
read_fifoMethod · 0.80
TransferGSPacketDataMethod · 0.80
checkPathsMethod · 0.80
ExecuteMethod · 0.45

Tested by

no test coverage detected