Код:
#include <stdio.h>

FILE *f;
char *fff;
char sbuf[192][256];

int get_pix(int x, int y)
{
  int disp=0x436+((4740-1-y)*6320)+x;
  return fff[disp];
}

void set_pix(int x, int y, int val)
{
  int disp=0x436+((4740-1-y)*6320)+x;
  fff[disp]=val;
}


int main(int argc, char* argv[])
{
  fff=(char*)malloc(29957878);

  f=fopen("dump.bmp","rb");
   fread(fff,1,29957878,f);
  fclose(f);

  for(int y=191;y>=0;y--)
  for(int x=0;x<256;x++)
  {
    int rx,ry;
    rx=11+(6307-11)*x/255; //магия!!!
    ry=11+(3060-11)*y/127;
    sbuf[191-y][x]=get_pix(rx,ry);
  }

  f=fopen("scr_tmp.bmp","rb");
   fread(fff,1,0x436,f); //get header
  fclose(f);
  f=fopen("scr.bmp","wb");
   fwrite(fff,1,0x436,f); //save header
   fwrite(sbuf,1,256*192,f); //save data
  fclose(f);

  return 0;
}
вот че-то такое. все картинки делал в паинте, режим 256 цветов.
scr_tmp.bmp - пустая болванка 256х192.