You could take the approach of the Atari Portfolio.
Provide some RAM
at the expected video memory address for the application to fiddle
with. Then periodically scan that RAM and copy whatever is there
to the screen.
No, it didn't work terribly well with the Portfolio, but it did
help a bit.
There were program to emulate CGA display on a Hercules Graphics Card
(HGC) that did something very similar. The driver would read the CGA
memory region every clock tick and build a (typically) 640x300
representation of the 320x200 (color) or 640x200 (monochrome) CGA
screen in the center of the 720x348 (monochrome) HGC screen.
It worked much better than you would think. Even the shading to
represent color worked, because each 8 color CGA pixel translated into
2 or 4 monochrome pixels.