>>793
マップの個々のセルを描画する段でキャラの移動を決めてたら、そりゃそうなるだろう。
普通はキャラの移動と描画を切り分けるか、最低でも移動後の位置に対して描画をかける。
VisiRPG.h の 74 行から、

int ii = i;
int jj = j;

で元の i と j を控えて、
移動のところで

if ( maptmp[i+1][j] == 0 ){
maptmp[i][j] = 0;
maptmp[i+1][j] = 52;
++ii;
}

みたいにしてやるx四方向分用意して、
if ( foot_step == TRUE )
BitBlt(BackHDC, jj * CHAR_SIZE - offset_x, ii * CHAR_SIZE - offset_y, CHAR_SIZE, CHAR_SIZE, hdc_mem, CHAR_SIZE * 4, 0, SRCCOPY);
else
BitBlt(BackHDC, jj * CHAR_SIZE - offset_x, ii * CHAR_SIZE - offset_y, CHAR_SIZE, CHAR_SIZE, hdc_mem, CHAR_SIZE * 5, 0, SRCCOPY);

これでOK。