INPUT_PORTS_END /*************************************************************************** Machine Driver ***************************************************************************/ static void simpsons_objdma(void) { int counter, num_inactive; UINT16 *src, *dst; K053247_export_config(&dst, 0, 0, 0, &counter); src = spriteram16; num_inactive = counter = 256; do { if ((*src & 0x8000) && (*src & 0xff)) { memcpy(dst, src, 0x10); dst += 8; num_inactive--; } src += 8; } while (--counter); if (num_inactive) do { *dst = 0; dst += 8; } while (--num_inactive); }
static void gijoe_objdma(void) { data16_t *src_head, *src_tail, *dst_head, *dst_tail; void *pdummy; int idummy; src_head = spriteram16; src_tail = spriteram16 + 255*8; K053247_export_config(&dst_head, (struct GfxElement**)&pdummy, (void**)&pdummy, &idummy, &idummy); dst_tail = dst_head + 255*8; for (; src_head<=src_tail; src_head+=8) { if (*src_head & 0x8000) { memcpy(dst_head, src_head, 0x10); dst_head += 8; } else { *dst_tail = 0; dst_tail -= 8; } } }
static void gijoe_objdma(void) { UINT16 *src_head, *src_tail, *dst_head, *dst_tail; src_head = spriteram16; src_tail = spriteram16 + 255*8; K053247_export_config(&dst_head, 0, 0, 0, 0); dst_tail = dst_head + 255*8; for (; src_head<=src_tail; src_head+=8) { if (*src_head & 0x8000) { memcpy(dst_head, src_head, 0x10); dst_head += 8; } else { *dst_tail = 0; dst_tail -= 8; } } }