I suspect Megatouch is broken because the V9938 video chip signals an interrupt on each scanline instead of at vblank when it should. This comment can be found at line 601 in emu/video/v9938.c:

/*
** Somehow the IRQ request is going down without cpu_irq_line () being
** called; because of this Mr. Ghost, Xevious and SD Snatcher don't
** run. As a patch it's called every scanline
*/

I debugged this to death the last time I rewrote the Z80-PIO, and could not come up with a working solution. The V9938 code makes my eyes bleed every time I look at it.