分析了口袋妖怪一二代相关的泄露文件。
xtal开头的是口袋妖怪水晶的源码,三份都不一样,但都不是最终版本的。美欧版编译出来只能在官方模拟器gameboy.exe部分正常运行,在其他模拟器上都是无敌(任何攻击都对对方一击必杀)。谁有EDGB烧录卡的可以来试试看。日版无法编译,改过一大堆文件编译出来也有很多问题,编译出来也是无敌。
mons2、euro2是美版、欧版口袋妖怪金银的源码。编译出来之后转换为gb格式后,还要自己把部分binary blob导入才有怪兽和训练师的立绘。gs_korean里面不仅有韩版金银,也有日版金银的源码。无法确定这些源码是不是发布版本的。
这些包里还有大量其他资料,大量开发阶段的文档,官方模拟器gameboy.exe也出自gs_Korean包(需要破解时间限制)。
一代的是美版蓝、黄的debug版,编译比上面的要难,二代的只需要日文win95或者98就可以,一代则是要dosv(yksoft1说的,我还没确定)。
代码注释里面可以看到一些名人的名字,增田顺一的名字在一代里很多很多,二代的某个图形转换小工具是岩田聪写的。
二代google Gen2.7z,一代google poke1024、osrc.zip之类去找。
更新:用二代GS_Korean包的、mons2_org目录里面的isdmg.exe汇编器,islink.exe链接器(DOS下用的),在32位Windows下成功编译一代的两个版本源码。注意:一代的Makefile是微软的nmake语法,需要用nmake才能make。。。
更新:代码一字未改,改了pm_debug.def里面的基本生成选项,成功编译了blue8M的日文资源+debug+红版标题(应该只是标题还是红版)版本。由于英文化相当深度,有各种显示上的问题了。直接标题画面select 选择debug自动生成超强存档,主人公名叫ゲーフリ(Game Freak的简称),宿敌叫クリチャ(Creature的简称),直接飞到石英高原打四天王冠军通关,录了一个视频。
日美混合版口袋蓝debug通关 https://www.zhihu.com/video/1246086854392918016日文下怪兽名字都显示“~といいます”,大家应该注意到了吧。感觉改美版后,显示怪兽名字用的缓存在日文状态下太长,读怪兽名字进去之前没有全清空。isdmg汇编代码虽然比较清楚,但是查起来还是太烧脑了。
更新:
第一世代英文源码可以完美转日,还要修改一个宏。
另外,昨天第三世代的日版红蓝宝石、火红叶绿的源码也泄露了。是C语言写的,好懂很多。
编译环境是cygwin下面的gcc 交叉编译,gcc版本是2.9。环境最好在没有aslr的windows下,否则make会一直出现fork失败的错误,需要不断重试。
可以开关debug版本的选项。
更新:第四世代钻石珍珠版日版的源代码也泄露出来了。由于需要以前网上很少见的NitroSDK3.2,以及同样少见的特定版本NitroDWC(无线面联API)、NitroWifi(无线互联网API)和NitroVCT(语音API),4chan的人花了很长时间才整好编译环境编译成功。
需要在老版本的Cygwin环境,用的编译器是CodeWarrior,在现在的系统上会有很多问题。
更新:口袋钻石源码简单修改,卢本伟专用版。
更新:yksoft1把口袋初代的makefile改了用在口袋水晶上,现在很容易build了,也完美解释了一击即死的原因(美版本地化者加的一个调试功能,就是所谓skip战斗)。
代码都扔到gitee了。。