Hey!
Using CGX API is quite easy too, you won't have to rewrite much stuff:
I have some old code:
Locking the bitmap:
lockResult=(APTR)LockBitMapTags(myScreen->ViewPort.RasInfo->BitMap,LBMI _BASEADDRESS, &baseScreenAddress,TAG_DONE);
Unlocking it:
UnLockBitMap(lockResult);
Remember to lock and unlock it each frame, if you keep the BitMap locked you could run into problems if CGX or P96 decides to move bitmaps from gfx ram to fast ram :-)
that's all :-)
PS: if you have to perform a memcpy of the whole screen it would be better and more compatible to use WritePixelArray(). If you can give scumm a pointer to the gfx ram and it writes the gfx directly then it will show the advantage.
PS2: I think you should simply advise adding buffers, e.g.:
addbuffers WORK: 2000
and big files will load without problems, just like in ADoom.