line[x] = (screenBase[yyy * sizeX + xxx] | prio);
line[x] = (FROM16LE(screenBase[yyy * sizeX + xxx]) | prio);
void inline gfxDrawRotScreen16Bit160(u16 control,                                     u16 x_l, u16 x_h,                                     u16 y_l, u16 y_h,                                     u16 pa,  u16 pb,                                     u16 pc,  u16 pd,                                     int& currentX, int& currentY,                                     int changed,                                     u32 *line){  u16 *screenBase = (DISPCNT & 0x0010) ? (u16 *)&vram[0xa000] :    (u16 *)&vram[0];  int prio = ((control & 3) << 25) + 0x1000000;  int sizeX = 160;  int sizeY = 128;    int startX = (x_l) | ((x_h & 0x07FF)<<16);  if(x_h & 0x0800)    startX |= 0xF8000000;  int startY = (y_l) | ((y_h & 0x07FF)<<16);  if(y_h & 0x0800)    startY |= 0xF8000000;  int dx = pa & 0x7FFF;  if(pa & 0x8000)    dx |= 0xFFFF8000;  int dmx = pb & 0x7FFF;  if(pb & 0x8000)    dmx |= 0xFFFF8000;  int dy = pc & 0x7FFF;  if(pc & 0x8000)    dy |= 0xFFFF8000;  int dmy = pd & 0x7FFFF;  if(pd & 0x8000)    dmy |= 0xFFFF8000;  if(VCOUNT == 0)    changed = 3;  if(changed & 1) {    currentX = (x_l) | ((x_h & 0x07FF)<<16);    if(x_h & 0x0800)      currentX |= 0xF8000000;  } else {    currentX += dmx;  }  if(changed & 2) {    currentY = (y_l) | ((y_h & 0x07FF)<<16);    if(y_h & 0x0800)      currentY |= 0xF8000000;  } else {    currentY += dmy;  }      int realX = currentX;  int realY = currentY;  if(control & 0x40) {    int mosaicY = ((MOSAIC & 0xF0)>>4) + 1;    int y = (VCOUNT / mosaicY) * mosaicY;    realX = startX + y*dmx;    realY = startY + y*dmy;  }    int xxx = (realX >> 8);  int yyy = (realY >> 8);    for(int x = 0; x < 240; x++) {    if(xxx < 0 ||       yyy < 0 ||       xxx >= sizeX ||       yyy >= sizeY) {      line[x] = 0x80000000;    } else {      line[x] = (screenBase[yyy * sizeX + xxx] | prio);    }    realX += dx;    realY += dy;        xxx = (realX >> 8);    yyy = (realY >> 8);  }  if(control & 0x40) {        int mosaicX = (MOSAIC & 0xF) + 1;    int m = 0;    for(int i = 0; i < 240; i++) {      if(m)        line[i] = line[i-1];      m++;      if(m == mosaicX)        m = 0;    }  }      }