yksoft1 发表于 2020-7-31 11:23

7月份任天堂泄露内容(含源码)研究贴

本帖最后由 yksoft1 于 2020-7-31 11:30 编辑

一、塞尔达传说梦见岛/梦见岛DX源码
源码在other.7z的dmg.7z和cgb.7z中。
前者是GB原版的,后者里面有GBC DX版本的。

主要问题在于,原版的编译过程大概是先生成IS-DMG/CGB-DEBUGGER开发机用的ISX可执行文件(不包含图形/音乐的ROM BANK),然后用开发机客户端写入执行文件bank以及相应数据Bank,最后从开发机导出用于写卡带的raw格式ROM镜像。
数据Bank的列表可以参照rz.ice文件(原版),zchr.s文件(DX版)。
然而,我们手上并没有开发机(以前日本雅虎上GBC时代的开发机也是天价且几年才出现一台),只能想别的办法自己先转换ISX为raw,再把数据BANK的数据用程序手工写入raw镜像中。原版里面音乐BANK的文件不是二进制而是十六进制文本格式的,需要自己解析。
之前我研究口袋妖怪金银的源码的时候,就是这么做的。
我用的ISX工具是这个:
isx2gb v1.02 - Intelligent Systems eXecutable converter for Game Boy (Color)
Programmed by: tmk, email: tmk@tuta.io
Project page: https://github.com/gitendo/isx2gb/然而这次还有个问题,无论怎么搞,出来的镜像都不能启动。发现问题在于有一段重要的跳转表代码是无法正确写入ISX的,只能最后自己写入了。
//from retail Zelda and ZeldaDX 7ff80-7ffff
unsigned char lastbank=
{0xf0,0xa8,0xa7,0x28,0x19,0xd6,0x01,0xe0,
0xa8,0xe6,0x03,0x20,0x11,0xf0,0xa9,0xa7,
0x28,0x03,0x3d,0xe0,0xa9,0xf0,0xaa,0xa7,
0x28,0x04,0xd6,0x10,0xe0,0xaa,0xf0,0xab,
0xa7,0x28,0x1b,0xd6,0x01,0xe0,0xab,0xe6,
0x01,0x20,0x13,0xf0,0xa9,0xfe,0x07,0x30,
0x03,0x3c,0xe0,0xa9,0xf0,0xaa,0xfe,0x70,
0x30,0x04,0xc6,0x10,0xe0,0xaa,0x21,0xa9,
0xff,0xf0,0x24,0xe6,0xf8,0xb6,0x23,0xe6,
0x8f,0xb6,0xe0,0x24,0xf0,0xf2,0xa7,0x28,
0x06,0xea,0x60,0xd3,0xaf,0xe0,0xf2,0xf0,
0xf3,0xa7,0x28,0x06,0xea,0x70,0xd3,0xaf,
0xe0,0xf3,0xf0,0xf4,0xa7,0x28,0x06,0xea,
0x78,0xd3,0xaf,0xe0,0xf4,0xc9,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
最后经过汇编、链接、转换、填充四步,才能做出能运行的raw ROM镜像。

研究成果展示:
1.克荷林特岛江南皮革厂倒闭了,原价980的弓只要1块钱! 折腾了一下ROM文件尾消失的的神秘128字节,现在总算能编译出正常运行的塞尔达梦见岛了。


2.卢本伟光束,直接把Lv1的剑改出有剑气,改成了放魔法杖那个球。
3.任天堂泄露大包折腾继续,梦见岛DX也搞成功了。
卢本伟之二——一开盾就放出一梭子箭(无延时)。

二、星际火狐2、星际火狐1源码
在SFC.7z包里面。Argonaut真的很强大,不仅设计了MARIO-1加速芯片,而且他们的SFC游戏汇编器、链接器、图形编辑器什么都是他们自己开发的。

然而,不知因为什么,星际火狐2总是汇编不出能运行的ROM,应该是bank0有问题。星际火狐1倒是很轻松的就编译了,可惜泄露的源码是某个“竞速专用版”的源码。

当然后来我还是通过修改VARS.INC以及其它一些小改,正常版、带选关功能的调试版也编译出来了。
推上有洋大人改代码取消了强制视角限制,可以全向飞行了。
感觉洋大人感兴趣的主要还是N64的那些泄露,但是那些泄露的很多都没源码;还有就是神游胎死腹中的Netcard、Ensata的源码。
对于我来说,其实最应该花时间的是口袋珍珠钻石的完整CVS repo。。。不知道早期版本是什么样子。


fqxufo 发表于 2020-7-31 11:38

羡慕超能力者,技术小白问一下:这些源码都是汇编吗?是不是每台游戏机的都不一样不能通用指令集

yksoft1 发表于 2020-7-31 11:44

至于Netcard泄露文档中所谓“在线口袋妖怪”项目构想,其实并不是什么在GBA+Netcard+电脑环境跑的“口袋MMO”。更像以后NDS/3DS口袋的联机内容。

Netcard的官方名称好像是 "iQue聚乐卡"。

尘落樱飞 发表于 2020-7-31 11:52

黑客就不能挖点普世的嘛,比如下次ND内容

yzb 发表于 2020-7-31 11:58

为啥里面那么多fu ck

竜破斬 发表于 2020-7-31 12:07

yzb 发表于 2020-7-31 11:58
为啥里面那么多fu ck
因为任地狱程序员英语不行
那个道具物品列表不仅有英文和日文,还有英日合体的,或者说是从日语片假名反向联想出来的英文名称。
fuck shot应该是是Hookshot,日语是フックショット(fukkushotto)。
同样第一个Buleslet应该是手镯Bracelet。

yksoft1 发表于 2020-7-31 12:16

fqxufo 发表于 2020-7-31 11:38
羡慕超能力者,技术小白问一下:这些源码都是汇编吗?是不是每台游戏机的都不一样不能通用指令集 ...

GB、GBC和SFC的游戏仍然是汇编为主。
32位主机时代起C语言才真正普及。

fqxufo 发表于 2020-7-31 12:18

yksoft1 发表于 2020-7-31 12:16
GB、GBC和SFC的游戏仍然是汇编为主。
32位主机时代起C语言才真正普及。

一直好奇有些fc/gb上的老游戏汉化是如何实现的?按理说这些平台上根本没有中文的字库呀

yksoft1 发表于 2020-7-31 12:20

fqxufo 发表于 2020-7-31 12:18
一直好奇有些fc/gb上的老游戏汉化是如何实现的?按理说这些平台上根本没有中文的字库呀 ...

这些机子不是没有中文的字库,而是根本就没有字库。所有的东西都是存在卡带里的。

yksoft1 发表于 2020-7-31 12:23

https://www.bilibili.com/video/BV1VA411Y7cY/
泄露的恶魔城beta版,位置在other.7z里面的news.7z,里面的NEWS\テープリストア\NEWS_05\news_05.tar里面的
/home/kimura/games.lzh里面,里面有个dracura目录,里面的game.exe就是ROM。

mimighost 发表于 2020-7-31 13:47

汇编真是要死了

看着头疼。。。

sakuranosibe 发表于 2020-7-31 16:43

本帖最后由 sakuranosibe 于 2020-7-31 17:41 编辑

请问能提供一下链接么(/ω\)4chan上找到的google盘链接404了 估计被任地狱咔嚓了(/ω\)

野兽后辈 发表于 2020-7-31 19:30

yksoft1 发表于 2020-7-31 21:09

sakuranosibe 发表于 2020-7-31 16:43
请问能提供一下链接么(/ω\)4chan上找到的google盘链接404了 估计被任地狱咔嚓了(/ω\)
...

https://cowtransfer.com/s/26e2d92a48b44f
我早搬国内了。话说,N64的大包除了两个篮球游戏和马尿医生外,基本都不完整,很多模块源码没了只剩下目标文件。

yksoft1 发表于 2020-7-31 21:10

野兽后辈 发表于 2020-7-31 19:30
嗯?你当年是不是做过金坷垃?

不仅是当年。
名侦探坷垃 ED5 [练习]

鬼畜人力VOCALOID
2020-07-29 00:15:16
635播放 ·
12弹幕
未经作者授权,禁止转载

sakuranosibe 发表于 2020-7-31 22:15

yksoft1 发表于 2020-7-31 21:09
https://cowtransfer.com/s/26e2d92a48b44f
我早搬国内了。话说,N64的大包除了两个篮球游戏和马尿医生外 ...

多谢分享

yksoft1 发表于 2020-8-1 01:36

林克一次只能放一个bomb,卢本伟的不仅无限,还能一装一屏幕。





sniffer 发表于 2020-8-1 13:14

炸弹人有点意思。我说怎么看楼主id眼熟,原来是金坷垃作者

yksoft1 发表于 2020-8-1 23:45




塞尔达的打了个包。

yksoft1 发表于 2020-8-4 13:28

《星际火狐》《星际火狐2》DOSBox-Xbuild 环境
https://cowtransfer.com/s/8351d8dcc3c94b
我以为星际火狐2的代码有问题,原来把SFC文件头patch了就好了。。

yksoft1 发表于 2020-8-6 16:00

本帖最后由 yksoft1 于 2020-8-6 16:39 编辑

算是个阶段性研究成果吧,ISX文件,以及RZ.ICE资源文件转GB ROM文件的简单转换器。目前只能支持ISX里面最简单的01型帧(标准数据)。


那段重要的代码没写进去,主要还是因为写HEX块的时候没考虑原块的内容。用现在这个程序转ISX就不会出现问题了。
卢本伟版的打包也更新了。



yksoft1 发表于 2020-8-6 16:49

林克:俺老孙去也!

yksoft1 发表于 2020-8-16 10:05

补一个,其实应该是4月底泄露的。口袋蓝、黄源码,改Windows环境下编译用包。
我把汇编代码内部符号命名改成了符合isas规范的,删了documents目录。
口袋黄为了编译日版,改了一部分代码,口袋打印机那部分实在搞不定,屏蔽掉了,图鉴在日版下也还是显示不出来。改得有问题,美版在pm_debug.def里面开GBC模式后编译了跑不起来。日版可以。
而且我觉得这个口袋黄的源码本身就不是最终版本的。




页: [1]
查看完整版本: 7月份任天堂泄露内容(含源码)研究贴