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

Function ProcessEETag

pcsx2/sif2.cpp:99–131  ·  view source on GitHub ↗

Read Fifo into an ee tag, transfer it to sif2dma, and process it.

Source from the content-addressed store, hash-verified

97
98// Read Fifo into an ee tag, transfer it to sif2dma, and process it.
99static __fi bool ProcessEETag()
100{
101 alignas(16) static u32 tag[4];
102 tDMA_TAG& ptag(*(tDMA_TAG*)tag);
103
104 sif2.fifo.read((u32*)&tag[0], 4); // Tag
105 SIF_LOG("SIF2 EE read tag: %x %x %x %x", tag[0], tag[1], tag[2], tag[3]);
106
107 sif2dma.unsafeTransfer(&ptag);
108 sif2dma.madr = tag[1];
109
110 SIF_LOG("SIF2 EE dest chain tag madr:%08X qwc:%04X id:%X irq:%d(%08X_%08X)",
111 sif2dma.madr, sif2dma.qwc, ptag.ID, ptag.IRQ, tag[1], tag[0]);
112
113 if (sif2dma.chcr.TIE && ptag.IRQ)
114 {
115 //Console.WriteLn("SIF2 TIE");
116 sif2.ee.end = true;
117 }
118
119 switch (ptag.ID)
120 {
121 case TAG_CNT: break;
122
123 case TAG_CNTS:
124 break;
125
126 case TAG_END:
127 sif2.ee.end = true;
128 break;
129 }
130 return true;
131}
132
133// Read Fifo into an iop tag, and transfer it to hw_dma9. And presumably process it.
134static __fi bool ProcessIOPTag()

Callers 1

HandleEETransferFunction · 0.70

Calls 2

unsafeTransferMethod · 0.80
readMethod · 0.45

Tested by

no test coverage detected