Alternate Blitting Code


Tested in multiple forms in the 'blitterthread' function

Blitting Optimisation


Only checked once in vidc20.c, "/*If cursor data matches then no point redrawing screen - return*/", to cancel a 'needredraw'.


"This determines whether RPCemu can use hardware to blit and scale the display. If this is disabled then modes lower than 640x480 can look odd, and the system is slower. However, this must be commented out on some ports (Linux)"

Only turned on on Windows

If turned on on Linux, crash entering fullscreen mode

HARDWAREBLIT specific bs2,b3,b4

Three backbuffers rotated around

HARDWAREBLIT specific currentbuffer

which of bs2,bs3,bs4 is being used



Only ever set in HARDWAREBLIT mode (windows only)

#define VIDC_DOUBLE_NONE 0 #define VIDC_DOUBLE_X 1 #define VIDC_DOUBLE_Y 2 #define VIDC_DOUBLE_BOTH 3


SCREEN_W SCREEN_H Allegro defines holding the size of the display being used in fullscreen, used to calculate and center display of RO modes smaller than current Allegro mode


Allegro Global pointer to the screen hardware video memory. Only used in non-fullscreen mode. Fullscreen writes to 'backbuf' which is a pointer to screen (in not HARDWAREBLIT), and a pointer to bs2,bs3,bs4 in HARDWAREBLIT.


Bitmap that the RO data is copyied into and used as the src to the 'blit()' functions to put on the screen.


/*This makes RPCemu always run in fullscreen mode. Mostly suitable for DOS*/ #ifdef DJGPP

Always set screen depth to 16bit (why?) and always set the fullscreen var to 1

Only actively used on deprecated DOS port, if needed on Lninux/Mac/win suggest making the fullscreen var a config var that's saved across running, and let users decide


Completely unused var with a large bitmap in vram attached, REMOVE.


Whether the 'blit' (reading

This is always turned on on all platforms, with no reason I can think to single thread it again, remove the define and the alternative code.