static void draw_sprites3(osd_bitmap bitmap, int c, int d) {
        int offs, mx, my, color, tile, i, bank, fx, fy;

        for (offs = 0x0000; offs < 0x800; offs += 0x40) {
            mx = spriteram.READ_WORD(offs + c);

            my = mx >> 8;
            mx = mx & 0xff;

            /*		if ((my & 0x80) != 0)
	
	
             mx=(mx+0x100)&0x1ff;
             my=(my+0x100)&0x1ff;
             mx-=0x100;
             my-=0x100;
             my=0x200 - my;
             my-=0x200;
             */
            for (i = 0; i < 0x40; i += 2) {
                tile = spriteram.READ_WORD(offs + d + i);
                color = 0;
                fy = tile & 0x1000;
                fx = 0;
                tile &= 0xfff;

                if (tile < 0x400) {
                    bank = 0;
                } else if (tile < 0x800) {
                    bank = 1;
                } else if (tile < 0xc00) {
                    bank = 2;
                } else {
                    bank = 3;
                }

                //check the exclusions
                if (tile != 0 && tile != 0x3000 && tile != 0x26) {
                    drawgfx(bitmap, Machine.gfx[bank],
                            tile & 0x3ff,
                            color,
                            fx, fy,
                            mx, my,
                            null, TRANSPARENCY_PEN, 0);
                }

                my += 8;
                if (my > 0x100) {
                    my -= 0x200;
                }
            }
        }
    }