Nokia N900 >> Sbox

移植gngeo 0.8


因為Maemo系統上的gngeo是0.7版,而目前最新的gngeo是0.8版,因此司徒心想,新版應該具有比較好的性能表現和較佳的相容性,不過實際測試後,發現並沒有比較佳的性能表現,反而原本可以在gngeo 0.7版玩的遊戲,現在無法玩了,因此,司徒最後還是改回gngeo 0.7版,不過gngeo 0.8的移植過程,司徒還是整理一下,分享給需要的使用者。

要在N900上支援全螢幕,只需修改如下檔案即可:

$ vim src/blitter/soft.c
#define SCREEN_WIDTH 800

SDL_bool blitter_soft_init()
{
#else
  // 修改顯示解析度成800x448
  screen = SDL_SetVideoMode(SCREEN_WIDTH, height, 16, sdl_flags);
  SDL_ShowCursor(SDL_DISABLE);
#endif
}

void update_double()
{
  Uint16 *src, *dst;
  Uint16 w, h;
  unsigned long index;

  src = (Uint16*)buffer->pixels + visible_area.x + (buffer->w << 4);
  dst = (Uint16*)screen->pixels + yscreenpadding;
  for(h=0; h<visible_area.h; h++){
    for(w=0; w<SCREEN_WIDTH; w++){
      // 使用鄰近插補的方式補點
      index = w * visible_area.w;
      index/= SCREEN_WIDTH;
      dst[w] = src[index];
      // 下一行
      dst[w + SCREEN_WIDTH] = src[index];
    }
    src+= visible_area.w;
    dst+= SCREEN_WIDTH;
    src+= (visible_area.x << 1);
    dst+= SCREEN_WIDTH;
  }
}

原始畫面


修改後的畫面


返回上一頁