From: Lauri P. <lpe...@ni...> - 2000-12-06 02:20:51
|
On Tue, 5 Dec 2000 11:04:47 +1100 (EST), you wrote: > OK. There is a version at: > >http://www.zing.com/picture/pb170d94c2499614696882e49f59d1c52/ff20c279.jpg > > >Sorry that it: > >1) Is scaled down in size. > Looks like Zing does that on upload > >2) Has a cyan cast. > The Basilisk and MacOS X bitmap buffer layouts are in > different formats, and I haven't worked out a fast way > to copy the former to the latter with translation. I think I had the same problem once: http://www.kearney.net/~mhoffman/basiliskII/online.JPG The color distortion looks quite similar. As far as I remember, I was blitting in 15 bits mode when I should have done it in 16 bit mode, or vice versa. Consequently I wrote some conversion routines. In the current Windows port they are in x86 assembly, but some of the C code is still present in comments. The bitmasks seem to be derived from the memory.cpp frame_host_XXX_lput() functions. The file is video_windows.cpp in zip archive http://gamma.nic.fi/~lpesonen/BasiliskII/BasiliskII_win32_src_18062000.zip The functions are memcpy15() and memcpy16(), unrolled by 4. On a x86, code like this is not that slow since it pairs well: *p4++ = ((b1 & 0x007F007F) << 9) | ((b1 & 0x1F001F00) >> 8) | ((b1 & 0xE000E000) >> 7); Lauri |