Thank you a lot!
But if I change it to your code, Mame display a black screen
int win_perform_blit(const struct win_blit_params *blit, int update)
{
...
// copy data to the globals
asmblit_srcdata = (UINT8 *)blit->srcdata + blit->srcpitch * srcy + srcdepth * srcx;
asmblit_srcheight = blit->srcheight;
asmblit_srclookup = blit->srclookup;
asmblit_dstdata = (UINT8 *)blit->dstdata + blit->dstpitch * blit->dstyoffs + dstdepth * blit->dstxoffs;
asmblit_dstpitch = blit->dstpitch;
// pick the blitter
//blitter = update ? (blitter_func)active_update_blitter : //(blitter_func)active_fast_blitter;
//(*blitter)();
...
int c;
UINT8 * src = asmblit_srcdata;
UINT8 * dst= asmblit_dstdata;
for (c = 0;c<asmblit_srcheight;c++){
memcpy(dst,src,blit->dstpitch);
src += blit->srcpitch;
dst += blit->dstpitch;
}
return 1;
}
if I add this code, it crush...

int win_perform_blit(const struct win_blit_params *blit, int update)
{
...
// copy data to the globals
asmblit_srcdata = (UINT8 *)blit->srcdata + blit->srcpitch * srcy + srcdepth * srcx;
asmblit_srcheight = blit->srcheight;
asmblit_srclookup = blit->srclookup;
asmblit_dstdata = (UINT8 *)blit->dstdata + blit->dstpitch * blit->dstyoffs + dstdepth * blit->dstxoffs;
asmblit_dstpitch = blit->dstpitch;
// pick the blitter
//blitter = update ? (blitter_func)active_update_blitter : //(blitter_func)active_fast_blitter;
//(*blitter)();
...
int c;
UINT8 * src = asmblit_srcdata;
UINT8 * dst= asmblit_dstdata;
for (c = 0;c<asmblit_srcheight;c++){
memcpy(dst,src,blit->dstpitch);
src += blit->srcpitch;
dst += blit->dstpitch;
}
// pick the blitter
blitter = update ? (blitter_func)active_update_blitter : (blitter_func)active_fast_blitter;
(*blitter)();
return 1;
}
What happened? blitter_func can't find dst's data?
BTW:Have any documents depict how to conversion mame_bitmap to display bitmap?
Thank you again!