Posts: 401 from 2003/2/24
From: finland, the l...
I just discuss about video problems in MAME with one of my pals, and he said that problems begins after some update of MorphOS. He have similar problems and it looks that it may be because some changes in MorphOS overlay handling.
The problem is in MAME itself. Unfortunately it doesn't do overlay properly. It assumes that the overlay modulo equals to width passed to VOA_SrcWidth. This might be true for some width values but not for others.
Technical details follow. In the overlay blit code the code does the following to advance to the next row:
That is incorrect since the actual memory layout of the overlay might be different (that is: the modulo is larger than the requested width). It should instead do something like:
[ Edited by Piru 30.04.2019 - 00:28 ]
const LONG modulo = GetVLayerAttr(VLHandle, VOA_Modulo); // NOTE: one before the loop
dst = (void *) (((char *) dst) + modulo);