Is it mainly for showing the claw position? Try this (in this case Fidelity Phantom):
Code:
class:
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
func:
u32 phantom_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
u32 color = 0xff00ff;
if (!BIT(m_motors_ctrl, 4))
color = color >> 1 & 0x7f7f7f;
u8 x = m_hmotor_pos;
u8 y = 255 - m_vmotor_pos;
if (cliprect.contains(x, y))
bitmap.pix(y, x) = color;
return 0;
}
mcfg:
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_size(256, 256);
screen.set_visarea_full();
screen.set_screen_update(FUNC(phantom_state::screen_update));
und lay file: screen element with blend="add"
Or if blend is not supported yet in an older version, then fill the screen with white and do it with an <overlay>