I put synchronize before the latches, after the latches, put both before and after, sprinkling them around and couldn't get it to work. Both ap2000 and the a2pic.

Then I stuck a synchronize in the top of a2bus_pic_device::read_cnxx(u8 offset) and then it started working. I'll take a few of the others away and see if it keeps working.

Is machine().scheduler().syncronize() the same as just plain synchronize()?