also your just missing off the first pixel really, what you need to do is something like
miss 2 pixels, copy the rest of the line (so like screen[2] to 127)
miss 2 again, copy the rest of the line (again, but screen[2 + 127] to 127 + 127)
i know thats a terrible way of doing it but im just trying to say you have to do each line, missing the first 2 pixels and shifting them over. so you need an if statement if your using the for statemements.
for(x = 0; x < 64; x++){
for(y = 0; y < 128; y++){
if(y > 2)
screenbuff2[y] = screenbuff[y+2];
}
}
memcpy(screenbuff, screenbuff2, sizeof(screenbuff));
that sorta thing
oh and the way you showed, the problem with that altho it does shift it, the problem is it just moves the pixels back, so ones that should have gone out of the screen on the left, appear a line up on the other side.