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

Function ProcessEETag

pcsx2/Sif0.cpp:79–113  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

77
78// Read Fifo into an ee tag, transfer it to sif0ch, and process it.
79static __fi bool ProcessEETag()
80{
81 alignas(16) static u32 tag[4];
82 tDMA_TAG& ptag(*(tDMA_TAG*)tag);
83
84 sif0.fifo.read((u32*)&tag[0], 4); // Tag
85 SIF_LOG("SIF0 EE read tag: %x %x %x %x", tag[0], tag[1], tag[2], tag[3]);
86
87 sif0ch.unsafeTransfer(&ptag);
88 sif0ch.madr = tag[1];
89
90 SIF_LOG("SIF0 EE dest chain tag madr:%08X qwc:%04X id:%X irq:%d(%08X_%08X)",
91 sif0ch.madr, sif0ch.qwc, ptag.ID, ptag.IRQ, tag[1], tag[0]);
92
93 if (sif0ch.chcr.TIE && ptag.IRQ)
94 {
95 //Console.WriteLn("SIF0 TIE");
96 sif0.ee.end = true;
97 }
98
99 switch (ptag.ID)
100 {
101 case TAG_CNT: break;
102
103 case TAG_CNTS:
104 if (dmacRegs.ctrl.STS == STS_SIF0) // STS == SIF0 - Initial Value
105 dmacRegs.stadr.ADDR = sif0ch.madr;
106 break;
107
108 case TAG_END:
109 sif0.ee.end = true;
110 break;
111 }
112 return true;
113}
114
115// Read Fifo into an iop tag, and transfer it to hw_dma9. And presumably process it.
116static __fi bool ProcessIOPTag()

Callers 1

HandleEETransferFunction · 0.70

Calls 2

unsafeTransferMethod · 0.80
readMethod · 0.45

Tested by

no test coverage detected