上一篇:仙剑奇侠传1系列:1.本地运行环境及兼容性设置

介绍

仙剑奇侠传1是dos时代的经典游戏,相信以下图片能勾起大家的很多回忆。

 

sdlpal是仙剑奇侠传1的主程序。github项目sdlpal,项目地址:https://github.com/sdlpal/sdlpal,最早由国内仙剑奇侠传爱好

者 Wei Mingzhi发起维护,现由 SDLPAL开发团队维护,项目核心成员如下:

  Wei Mingzhi

  palxex <palxex.ys168.com>

  louyihua <louyihua绕过@爬虫21cn.com>

  以上第二位和第三位在上一篇文章仙剑奇侠传1系列:1.本地运行环境及兼容性设置中提到过。

louyihua就是那个北航的博士,他的github地址:https://github.com/louyihua

编译

  sdlpal官网说扩展了以下框架,注:该版本不能在dos下运行,各位看官不要浪费时间在dosbox里面测试。

按常规思维,笔者联想到,可能会依赖这些库。按图索骥到sdl官网http://www.libsdl.org下载sdl回来。

经过笔者最终测试,sdlpal不再像windows95/98那个版本把sdl静态编译到主程序里。而是以动态库方式和主程序sdlpal.exe共存的。

1、编译sdl

sdlpal主程序依赖于sdl,于是优先编译sdl,笔者本地使用Visual Studio 2019企业版,安装时勾选以下几项

sdl的编译还需要Directx的sdk,各位看官需要去微软下载Microsoft DirectX SDK (June 2010),地址

https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe

安装后获得Directx SDK文件C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)

截至编写此文章时官网SDL最新版本SDL2-2.0.10,下载地址http://www.libsdl.org/release/SDL2-2.0.10.zip

将SDL2-2.0.10下载回来放到sdlpal的3rd目录

打开SDL2-2.0.10项目后将SDL2和SDL2main更改SDK为Visual Studio 2017 - Windows XP (v141_xp)

一定要更改成这个,否则编译报错

c2118:负下标

笔者曾尝试下载 1.2.15编译,这个版本的是从Visual C++6.0升级过来的,这个版本不是本程序编译的最低依赖版本。

这里遇到的错误页分享以下,将库文件目录

C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x64

C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86

分别在添加到编译的库文件类路径,此处不再详述。

打开目录3rd\SDL\SDL2-2.0.10\VisualC中的SDL.sln编译项目,获得

以下三个文件

SDL2.lib

SDL2main.lib

SDL2.dll

将3rd\SDL\SDL2-2.0.10\include目录拷贝到

3rd\include

目录如下

2、编译sdlpal

打开项目sdlpal-master\win32目录下的sdlpal工程文件,修改配置如下

更改SDK为Visual Studio 2017 - Windows XP (v141_xp)

库目录添加..\3rd\SDL

编译通过。获得以下文件sdlpal.exe

将编译SDL2-2.0.10获得的SDL2.dll和sdlpal.exe复制到仙剑奇侠传1的运行目录,如下(上面的第5张图片)

打开sdlpal.exe程序界面如下

启动游戏

资料:

藏宝阁 http://palxex.ys168.com/

中国仙剑联盟怀旧版资料库  http://palunion.ys168.com/

仙剑奇侠传1系列:2.编译主程序SDLPAL及SDL的更多相关文章

  1. 系列篇|编译可在Android上运行的依赖库(一):glib库

    前言 这是系列文章,它们由<编译可在Android上运行的glib库>及其他4篇文章组成,这4篇文章在“编译依赖库”一节中列出.由于glib库依赖于其他第三方库,所以需要先将依赖的第三方库 ...

  2. C++ 系列:编译 boost

    Copyright © 1900-2016, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ 欢迎转载,请保留此版权声明. -- ...

  3. Echoprint系列--Android编译与调用

    在Echoprint系列--编译中编译了源代码,这次将Echoprint移植到Android平台并測试识别歌曲功能. 一.编译库 1.环境准备 Android NDK,我的是android-ndk-r ...

  4. linux内核系列(一)编译安装Linux内核 2.6.18

    1.配置环境 操作系统:CentOS 5.2 下载linux-2.6.18版本的内核,网址:http://www.kernel.org 说明:该编译文档适合2.6.18以上的Linux内核版本,只需所 ...

  5. cocos2d-x游戏开发系列教程-编译运行我们的第一个cocos2d-x游戏程序

    环境准备和介绍: 操作系统:64位Windows 7 sp1(Microsoft Windows [版本 6.1.7601]) 必要的软件和源码: visual_studio_ultimate_201 ...

  6. React Native系列(6) - 编译安卓私有React-Native代码

    为何要自己编译React Native安卓私有代码 我们在开发中遇到一个HTTP2的问题,React Native安卓客户端在和HTTP2支持的服务器通讯的过程中会有crash,见 React-Nat ...

  7. glib系列1 编译

    1 安装 meson glib 使用 meson进行构建,需要python3,首先下载meson, meson/meson.py 就是程序本身了,可以直接运行 git clone https://gi ...

  8. 跟vczh看实例学编译原理——零:序言

    在<如何设计一门语言>里面,我讲了一些语言方面的东西,还有痛快的喷了一些XX粉什么的.不过单纯讲这个也是很无聊的,所以我开了这个<跟vczh看实例学编译原理>系列,意在科普一些 ...

  9. linux shared lib 使用与编译

    一.              动态链接库的原理及使用 Linux提供4个库函数.一个头文件dlfcn.h以及两个共享库(静态库libdl.a和动态库libdl.so)支持动态链接. Ø        ...

随机推荐

  1. linux基础--命令使用

    rpm命令 rpm -qa 包 查看包是否安装 rpm qa 列出系统安装的所有包 rpm -ql 包 查看软件包安装的位置及配置的目录 rpm -ivh 包 安装rpm包或强制安装包 rpm -Uv ...

  2. KubeEdge v0.2发布,全球首个K8S原生的边缘计算平台开放云端代码

    KubeEdge开源背景 KubeEdge在18年11月24日的上海KubeCon上宣布开源,技术圈曾掀起一阵讨论边缘计算的风潮,从此翻开了边缘计算和云计算联动的新篇章. KubeEdge即Kube+ ...

  3. zznu-oj-2134- 发红包!!!-【多项式加法,模拟题目】

    2134: 发红包!!! 题目描述 给你两个最简多项式,请输出两个多项式相加后的结果.给定的多项式的格式为ax^num1+bx^num2+...其中x前面的a,b代表系数num代表指数(次方数),输入 ...

  4. Mysql 语法豆知识

    https://www.cnblogs.com/chentianwei/p/8093748.html mysql增加了大量语法,以前没有接触过.比如 create function begin..en ...

  5. JavaScript各种窗口尺寸

    浏览器窗口可视区域大小 网页尺寸scrollHeight 网页尺寸offsetHeight

  6. python_面向对象——继承

    1.继承 class Animal: def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex d ...

  7. dp四边形优化

    如果dp[i][j]=min(dp[i][k]+dp[k+1][j]+w[i][j]);且满足dp[a][c]+dp[b][d]<=dp[a][d]+dp[c][d](a<b<=c& ...

  8. zhengrui集训笔记2

    Day_6 计算几何 点积\Large 点积点积 叉积\Large 叉积叉积 极角\Large 极角极角 < π\piπ :叉积判断 else :atan2 旋转\Large 旋转旋转 左乘第一 ...

  9. django -过滤器的使用

    前情提要: 最近工作中用到django 中的  自定制过滤器的内容, 再此 复习一波过滤器和自定制 过滤器的内容 自定制过滤器   1.在settings中的INSTALLED_APPS配置当前app ...

  10. 创建第一个springboot项目,maven project