- _SysDebug("Video_Update - gpScreenBuffer[0] = 0x%x", gpScreenBuffer[0]);
- seek(giTerminalFD, 0, 1);
- write(giTerminalFD, gpScreenBuffer, giScreenWidth*giScreenHeight*4);
+ int ofs = giVideo_FirstDirtyLine*giScreenWidth;
+ int size = (giVideo_LastDirtyLine-giVideo_FirstDirtyLine)*giScreenWidth;
+
+ if( giVideo_LastDirtyLine == 0 ) return;
+
+ _SysDebug("Video_Update - Updating lines %i to %i (0x%x+0x%x px)",
+ giVideo_FirstDirtyLine, giVideo_LastDirtyLine, ofs, size);
+ seek(giTerminalFD, ofs*4, 1);
+ write(giTerminalFD, gpScreenBuffer+ofs, size*4);