But this doesn't explain why Megatouch games break with new PIO, V9938 didn't change afterall.
They broke because they were signaling a vblank interrupt (60Hz) at about 0.5Hz. The lack of keep-alive ints made the Z80 code crash and a watchdog reset occured.
The new PIO cares about the fact that the logic equation has to go false->true before an interrupt is signalled. The old PIO just banged in interrupts one after another until the V9938 bothered to toggle the VINT line, thus creating an illusion of a working system.
At least that's how I understood it, anyway it works now