移植 Super Mario War 到 GameShell

简单来说就两点:分辨率和使用 SDL

  1. 首先 SDL 2

这里使用的是 clockworkos 0.3,启用了 lima driver,但是这个驱动只对 SDL 有加成。这里修改 CMakeLists.txt

option(USE_SDL2_LIBS "Use SDL2 instead of SDL 1.x" ON) # only smw ported yet

当然,前提是你依赖要装齐了,这个可以尝试 build 然后补漏

  1. 是分辨率,这里我稍微改了下,使用环境变量设置

通常下,使用默认分辨率 320x240

如果设置了环境变量 SDL_RES 则使用指定的分辨率

char* sdl_res = strdup(getenv("SDL_RES"));
if (!sdl_res) {
  sdl_res = "320x240";
}
char* str_sdl_width = sdl_res;
char* str_sdl_height = strchr(sdl_res, 'x');
(*str_sdl_height++) = '\0';
int sdl_width = atoi(str_sdl_width);
int sdl_height = atoi(str_sdl_height);
free(sdl_res);
SDL_SetWindowSize(sdl2_window, sdl_width, sdl_height);

然后就OK了,剩下的都是编译的事情

  1. 当然,最后要留下链接:

代码仓库地址

下载链接地址

本文链接:

https://www.dosk.win/2019/03/21/16.html
1 + 4 =
0 评论