Some more updates
With regards to skichamp anyway .. the status bit controls when to start writing to the 3d. I've dumped the timing values as to when in the frame they are written. You can see the status bit directly controls when this happens.


With regards to scud plus timing. I couldn't figure out in my own code why it was working sometimes and not others. It's not the timing value that it cares about so much. I don't think it cares for any specific numbers to be that accurate.
But what makes all the difference is doing this
- Code: Select all
ppc_execute(vblCycles);
IRQ.Assert(0x02);
If you run VBL cycles before irq2, timing is almost always perfect, tearing is almost completely eliminated in the video, same for a whole bunch of other games. They don't seem to care exactly when you fire IRQ2 or what the value of the status bit is set to.
But ski champ wont even boot if you run vbl cycles first, regardless of any status bit values you give it. I think LA machine guns has the same issue.
So it's the order of our IRQs I think that could be off somehow.