Files
CDi_MiSTer/doc/mcd212.md
Andre Zeps f0b54e9e8d Added screenshots from SignalTap during Main stall
PS3 Replug, Raw Screenshots and scaled screenshots

Also moved some files around
2026-05-02 19:07:03 +02:00

1.9 KiB

MCD212

Observations concerning VideoIRQ, ICA and DCA timing

Questions to answer:

  1. When the is ICA executed
  2. When the is DCA executed
  3. The state of Display Active relative to video timing

When generating the INT very early on in the ICA

It occurs before VSync, just after VBlank since output of pixel data stops before it

IRQ directly at the start of ICA

In case of 60 Hz mode, the behavior is equal. The remaining frame time until vertical synchronization is just shorter.

alt text

When generating the INT a little bit later at the ICA instruction 166

The shift caused by the execution time is noticeable.

IRQ at ICA instruction 166

When generating the INT at the first instruction of the DCA

The IRQ occurs exactly at the end of the first line. That also fits the datasheet, but not the green book. I assume that the driver takes care of this discrepancy.

IRQ directly at the start of DCA

Timing of Display Active bit

Register CSR1R[7] is a rather undocumented indicator for display timing To analyze it, this program is used.


	for (;;)
	{
		unsigned char status = *((unsigned char *)0x4ffff1);

		if (last_status != status)
		{
			SLAVE_CH2 = 0x83;
			if (status & 0x80)
			{
				SLAVE_CH2 = 0x83;
			}
			last_status = status;
		}
	}

The Slave IRQ will occur once on falling edge and twice on rising edge.

Point in time when DA falls

This shows that Display Active is 0 as soon as output of pixel data stops. This would also mean that the ICA starts at exactly the same time.

Points in time when DA changes

This shows that Display Active is 1 as soon as output of pixel data starts. This also means that it is 1 before the first DCA is executed.