游戏拆包见闻

拆游戏有那么多了,留一些资料在这,好让可能的后人少走点弯路。以一些有趣的(?)小知识为主,不见得有系统性的东西——系统性的都在汉化组那边,我仅仅是一个敲键盘的。

在这里,兄弟般的俄罗斯人民给了我们别致的礼物

拆包这东西怎么说呢,个人觉得还是静态方法好。反射什么的,缺乏跨平台性能:你不能指望在ARM架构Linux系统上运行XP3Viewer来从《千恋万花》中提取资源——你甚至不能指望在它上面跑《千恋万花》。

不得不说,俄罗斯人在计算机科学上的确有一套。无论是nginx,还是telegram,还是drakon editor,俄罗斯程序员写的东西总是处于世界顶尖水平。你没猜错,兄弟般的俄罗斯人民写了个拆包工具,支持大量近现代游戏,还按照MIT协议开源。话不多说,直接上链接:https://github.com/morkt/GARbro。值得一提的是,这款工具不仅仅使用纯静态方法解包,而且对某些格式有打包能力

继续阅读“游戏拆包见闻”

tenshin.js开发杂记 TJS与KS的未来篇

Kirikiri引擎使用了一种叫做TJS (Kirikiri TPV Javascript)的类JS语言用于引擎的逻辑,功能比早期JS稍微多上一截。TJS出来的时候还是互联网的黎明时期,也就是那个AJAX都没有的时代,自然谈不上什么JSON了。在漫长的时间中,TJS和标准JS走向了不同的方向,TJS的功能几乎停滞,而JS,或者说ECMAScript则有了自己的完整生态体系和现代化的语言标准。时至今日两者可以说除了最基本的语法甚至没什么一样的了。不过类JS语言的一大特征是可以玩JSON这点倒是保留了下来。

而KS(KAG Script)呢,则是Kirikiri的剧情脚本语言,大致相当于……Markdown?Shell脚本?所谓的DSL(领域特定语言)?那东西倒是好,写法简单,解析起来也方便,就是跑起来有点那啥。

继续阅读“tenshin.js开发杂记 TJS与KS的未来篇”

tenshin.js开发杂记 技术选型篇

天神乱漫 => lucky || !unlucky

《README.md》

最近程序写多了,突然想说点什么,干脆借着开发杂记的名号夹杂点私货算了,反正PROVIDED “AS IS”

为什么是B/S

本项目的技术栈继承自完全娱乐性质的kagura.js。为什么选择B/S架构也要追溯到那时。写那东西的时候,我本来只是想自动播放某《神乐黎明记 雷道之章》的HCG和音频什么的。我曾经考虑用Python,后来想了想,我还要大战图形界面,算了(拿C#写倒是不用怎么战图形界面,不过我当时没想到)。想了想,上JavaScript,写HTML,排版方便,UI和业务逻辑分离,于是那个项目便用了JS。然后呢,我发现JS(至少是浏览器里面的JS)的文件系统API简直要人命,在忍耐了一整个空气中弥漫着躁动气息的夜晚之后,我终于忍不住了。可是代码已经水了三百行出来了,现在换语言怕是来不及,我灵机一动,nginx目录浏览带json模式,拿来假装自己是RESTAPI挺合适,于是那项目就成了B/S架构。

继续阅读“tenshin.js开发杂记 技术选型篇”