关于部分DOS版MOD的移植难度

这里是近期看了以前一些人的工作后,本垃圾的一些经验。如果是为了提高技术可以简单看一下,本垃圾建议千万不要深入研究这些东西。这个其实对提高你的编程水平也帮助不大,或许能提高一点架构和应变能力?

基于DOS版的MOD,移植的难度是由使用的50指令多少决定的。

因此移植的难度可以分为以下几个档次:

1. 未使用50指令

苍龙逐日,台湾版,小猪闯江湖,问情篇……还有很多。几乎没有难度。

需要注意的只有3号指令可能因为DOS版的bug有些不规范的情况,本垃圾和游泳的鱼都各自发现了这个问题,实际上这个问题的源头是FishEdit默认参数不合理。

2. 使用50指令做了一些随机剧情

再战江湖,天书奇侠试玩版等,这两个其实用到的还算比较简单,实现了50指令后经少数修正即可。

游泳的鱼自己做到这一步就放弃了,后来ka和027在lua版上成功运行了再战江湖。

3. 使用50指令做了大量系统设计,大量依赖25和26两个指令

再破菠萝,笑梦游记等。其中再破菠萝由于大量炫技写法,难度更大。笑梦游记虽然发布比较靠后,实际上还是剧情为主,更简单一些。

25和26两个指令基本上只能用特殊列表来兼容了,依赖得越多,移植难度越大。此外,再破菠萝中还有直接往内存写big5码的情况。

同时,大量使用50指令会导致速度变慢,毕竟是汇编跟封了好几层的调用的区别,不注意优化效率会变得非常低。

之前的lua版到笑梦游记就为止了,好像笑梦游记其实也不是很正常。

4. 49指令和战斗指令

包含这些指令且公开发布的DOS版MOD只有一个:水浒试玩版。

理论上还有魏征传奇。据我所知还有一个,但是那个应该根本不可能移植了。

战斗指令lua版没有完成,49指令连Pascal版都没有完成。

本垃圾好像确实听说有人想移植水浒试玩版,可能他并没有意识到这里的问题。

建议是,这东西虽然体量不大,但复杂度超过菠萝,如果菠萝都不能运行,就千万别碰这玩意。而且玩后来的新版应该更好吧。

5. Lua强迫症专线

如果想用Lua版移植前传、水浒,请立刻打消这个念头。

我记得笑梦还行,但是需要重写部分事件,比如50指令对话事件,那个代码似乎毫无效率

pascal版实际上遇到这个事件也是调用kg发在版上的程序。本垃圾试了一下直接调用50指令的事件,也不慢,但是效果差点。

下面是水浒版对话,kg程序版对话和kg指令版对话。

屏幕截图 2025-07-29 200617.png
屏幕截图 2025-07-29 200650.png
屏幕截图 2025-07-29 200713.png

啊,当时在lua里,KG的对话指令效果不是特别好。

后来重写了。

补充一句,当年用KG写的工具转换KG对话似乎需要手动补充7个空语句清屏。
从现在的眼光来看简直是太菜了。

大佬,怎么逆向游戏场景的瓦片数据信息啊,grp和idx怎么解析得到每个场景网格位置对应的瓦片编号啊?我想重新编写dos版本,但是地图重新编辑太花时间了。

可以参考pascal版或者cpp版

感谢大佬赐教!我马上去研究一下。

请教25、26为什么不能移植?不是镜头移动和场景数据更新么?

50指令中的25和26

我感觉配套修改cpp底层应该是可以实现的。
就是一个划不划得来的问题。
后续可以尝试把整个pascal项目全扔给AI修改看看。

只要有token拿AI猛干,前传金水移植lua不是难事,直接把事件重写一遍

前传lua版已移植完毕,一切皆有可能