> Can someone explain that one to me? I based it on existing output implementations in > MAME.
You were pulling data out of the shared RAM, when you should be getting it from the I/O MCU's output ports instead. Look at the existing Prop Cycle implementation (I added that specifically as an example of how this should be done). So your version not only was possibly getting "uncooked" data that's harder to interpret, it was making the driver slower.