查看完整版本: [-- 【讨论】FC游戏VCD光盘制作问题讨论——其实很简单 --]

【 浮游城 - Castle in the Sky | 开放邀请注册,PS|SS|WII|DC下载研究中心 】 -> 【 模拟器疑难解答区 | Emulator FAQ 】 -> 【讨论】FC游戏VCD光盘制作问题讨论——其实很简单 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

lzero27 2006-12-07 15:41

找个刻录机,放张CD-R,建个目录,把自己喜欢的ines格式的FC ROM加进去,刻成碟,放到游戏VCD/DVD里,机器会自动进入文件选择状态,通过遥控器或手柄在屏幕上显示的目录里选择游戏,进入游戏开始玩——就这么简单。

1、所有的ROM放在1个目录内,第2个目录好像机器不认。
2、DVD/VCD机器不支持中文文件名显示,所有中文显示为“—”,因此刻录前最好把ROM文件全改成英文。
3、个别游戏好像运行不了,不知道是机器的问题还是ROM有问题。
4、一般常见的FC游戏都可以玩,包括原来VCD光盘上没有的经典节目,如脱狱、双截龙2&3、恶魔城、蝙蝠侠、赤影战士、松鼠大战1&2等等。还有部分游戏画面有点问题,有些遗憾,如超级魂斗罗、人间兵器、加纳战机等画面出错或没有背景,而忍者龙剑传123的某些版本不能进入游戏。有时间和机器的朋友可以慢慢去尝试,毕竟GOODNES里的ROM还是比较多。
5、游戏中要退回到文件选择画面可以同时按A+B+START组合键


几个月来反复研究FC游戏VCD光盘上的BIN文件结构,妄图找到制作相同游戏节目光盘的方法,今天才发现,一切都是近乎是徒劳无功。 惭愧! :(

其实,市面上流行的带有8位游戏(也就是FC/NES)功能的DVD/VCD,本身就直接支持ines格式的ROM文件。随机器附带的300游戏光盘“误导”了大家——当然包括我自己。很多有这类机器的朋友也早就知道了,只是大家缺少了点交流而已。


看到“莫失莫忘”在ISO区发的“【分享】刻录自己的SEGA16位游戏VCD”帖子后,(http://bbs1.chinaemu.org/htm_data/63/0603/46858.html)
很想把自己近日尝试制作FC游戏VCD光盘的努力和难题汇报一下,希望能得到各位的指点。

大约从2001年起,市面就出现“FC游戏VCD影碟机”了,直到现在还有很多集成了FC游戏功能的DVD+MPEG影碟机在市面销售。这种影碟机配有1张光盘,号称集合了300个FC游戏,其中大约50%是重复节目,值得玩的经典节目比较少。于是很多玩家/网友都想,能不能自己做一张这样的光盘,把喜欢的FC游戏节目合在一起,在大屏幕电视机上过过瘾,哈哈。

经过查看分析,这张FC游戏光盘是一种特制的VCD格式光盘,可以被识别成视频光盘,但在没有游戏功能的影碟机上不能被识别和播放。光盘上的目录结构和标准的VCD不一样,光盘根目录下友6个子目录,分别是:
\CDI
\EXT
\MPEGAV
\NEWROM
\SEGMENT
\VCD

  其中,MPEGAV是空的里没有文件
SEGMENT目录里存放这30个游戏选单文件和一个空选单文件
NEWROM是标准VCD上没有的目录,里面存放着从G001.BIN~G300.BIN共300个ROM文件。

这300个BIN文件的文件长度远大于对应的NES ROM文件长度,经EZ论坛的SSforME 分析,这个BIN文件比相应的NES ROM多了个文件头和文件尾。认为将网上下载的NES格式的MAPPER0的ROM去掉文件头,再将以下的a.bin加到ROM之前,将b.bin加到ROM之后,即为VCD要求的BIN格式!

为了测试SSforME的分析是否正确,现在只有开始制作自己的BIN文件来替换光盘上原有的ROM文件,并刻盘了。下面以单个文件为例,介绍我制作FC游戏VCD的过程:

1、首先根据游戏光盘的节目单找到可以替换的MAPPER0的游戏,例如冒险岛(G199.BIN文件大小是98KB)这个游戏,就是MAPPER0的。

2、在网上下载的NES格式ROM文件中,选一个MAPPER0游戏,例如”田间战斗.nes”(FIELD COMMBAT,光盘上也有,在第4页第2个—G032.BIN)

3、准备好转换用的a.bin和b.bin(见附件)

4、用winhex打开[田间战斗.nes],删去文件前面的16个字节(NES信息),在文件前插入a.bin,在文件后面加上b.bin,保存为G199.BIN,文件大小为80KB。

5、用NERO或Alcohol 120%或UltraISO等软件制作FC游戏VCD光盘的镜像并保存,称为[8位FC游戏VCD光盘镜像 ]

6、用WINISO打开[8位FC游戏VCD光盘镜像],将镜像文件里的G199.BIN改名为G999.BIN,上传制作好的新G199.BIN到镜像文件的NEWROM目录,删除镜像文件里刚才改名的G999.BIN。

这里,先将原文件改名再上传新文件的操作,是因为WINISO不能直接覆盖镜像内原来的同名文件。不先删除原来的BIN文件,是怕光盘布局发生变化。

7、选保存(镜像文件),覆盖原镜像。注意这里不是[另存为],如果选[另存为。。。]那么光盘布局可能发生变化,保存的新镜像会变成“非启动光盘”,而不再是VCD视频光盘了。

8、用UltraISO打开新的[8位FC游戏VCD光盘镜像],看看光盘格式还是不是“VCD视频”,如果是的话,就可以被游戏VCD影碟机识别。

9、用NERO刻录镜像文件(映像)到CD-R。

到此,新的游戏光盘终于制作好了,按照预期,在游戏VCD影碟机上玩的时候,选第199个节目,将不再是“冒险岛”,而是“田间战斗”(FIELD COMMBAT)

不过.........

当我将刻录好的CD-R拿到游戏VCD上用,可以识别成游戏VCD,进入游戏没有问题,可是在选取第199个游戏的时候——也就是原来选单画面第20页第9项[冒险岛],问题来了!

出来的游戏竟然还是[冒险岛],不是已经替换成“田间战斗”(FIELD COMMBAT)了吗,原来的G199.BIN不是也删除了吗?怎么还是冒险岛,难道替换和删除无效?

在PC上打开这张CD-R查看,光盘上的G199.BIN文件大小确实是80KB,是替换上去的新田间战斗G199.BIN啊,原来98KB的冒险岛G199.BIN确实不在目录上了。

这是怎么回事,难道这张光盘调用游戏ROM不用目录,直接在光盘的固定扇区读取?

xiao555 2006-12-07 17:37
可以上传一个bin上来吗?

lzero27 2006-12-07 20:02
光盘镜像和游戏节目清单都已经上传到了网盘: http://lzero27.gbdisk.com

在EZ上的相关帖子是:
http://bbs.emu-zone.org/newbbs/viewthread.php?tid=414310&extra=page%3D1
http://bbs.emu-zone.org/newbbs/viewthread.php?tid=420770&extra=page%3D1
http://bbs.emu-zone.org/newbbs/viewthread.php?tid=422299&extra=page%3D1

lzero27 2006-12-08 17:33
可能还是要用到CDmage来修改镜像文件
直接用WINISO添加的文件无效
再实验去。。。

lzero27 2006-12-09 22:54
用CDmage制作了数张光盘,都有问题

1、按SSforME 的方式制作的ROM文件,游戏VCD不认
用SSforME 提出的方法,用NES ROM文件去掉文件头16字节后,加上a.bin和b.bin,做成的ROM文件,比VCD光盘上相应的MAPPER0游戏ROM文件小。用CDmage上传到镜像覆盖原有BIN文件时,软件提示文件长度小了,用0来补齐。同意后写入镜像。但是在影碟机上玩的时候,这个替换的游戏确实覆盖了原有的游戏,但是调不出来,画面一闪,返回选游戏状态。
开来,NES格式的ROM想转换成游戏VCD格式还不是这么方便。

2、CDmage修改后的镜像虽然能玩,但是没有了选单画面。只能黑屏下盲选。可以实现选单的翻页和游戏的选取,但是始终看不到选单的画面。

3、用原VCD光盘上同尺寸的游戏相互替换后都可以成功玩,但同样没有了选单画面。

4、想通过单纯修改文件名来打乱节目次序——没有效果,必须在镜像上对对应的文件(扇区)进行覆盖替换。

心太 2006-12-11 00:51
现在这样的VCD很少见了呢...现在都只有DVD卖了

PS.改镜像的话,怎么也不能用WINISO吧....

YZB 2006-12-11 01:55
去问问我们区的GIF999吧,他可是能人呢

lzero27 2006-12-11 09:00
GIF999的确是高人,不知道他有没有兴趣研究这个FC光盘

glf999 2006-12-11 12:03
这个我做过 当时用 video pack 制作的

完全仿制的 内部细节 在最后的 测试时因为

vcd光盘中有一个 mpg 的dat文件 所以失败

您要做的话 可以在烧录C2D 镜像文件前手工修改掉

那个 dat文件 否则可能还是不行

------------------------------------------------------

那个游戏VCD 机 如果识别到光盘有 mpg 数据

就会切换到 播放模式 切记哦

------------------------------------------------------

yksoft1 2006-12-11 13:05
那个CeQuadrat的东西?(会在光盘中放一个vcd_play.exe)我以前用来做过MD游戏的。不过似乎方法和这中完全不同。

glf999 2006-12-11 15:43
在光盘中加不加 播放器 可以选择的

之要不让vcd进入播放模式就没问题

一旦进去播放模式就失败了

yksoft1 2006-12-11 19:32
可惜我没有这样的FC VCD。

lzero27 2006-12-11 21:52
引用
引用第9楼yksoft12006-12-11 13:05发表的“”:
那个CeQuadrat的东西?(会在光盘中放一个vcd_play.exe)我以前用来做过MD游戏的。不过似乎方法和这中完全不同。

能详细介绍一下你做MD游戏光盘的方法吗,说不定可以借鉴 :)

lzero27 2006-12-11 22:03
引用
引用第8楼glf9992006-12-11 12:03发表的“”:
这个我做过 当时用 video pack 制作的
完全仿制的 内部细节 在最后的 测试时因为
vcd光盘中有一个 mpg 的dat文件 所以失败
您要做的话 可以在烧录C2D 镜像文件前手工修改掉
那个 dat文件 否则可能还是不行
------------------------------------------------------
那个游戏VCD 机 如果识别到光盘有 mpg 数据
就会切换到 播放模式 切记哦
.......

GIF999的确很熟悉刻录技术啊 :)

再请教GIF999,你提到“这个我做过 当时用 video pack 制作的,完全仿制的内部细节,在最后的测试时因为vcd光盘中有一个 mpg 的dat文件,所以失败。”

这里,用video pack来制作能否“完全仿制(游戏VCD光盘)的内部细节”呢,可以制作出非标准VCD格式的VCD光盘来么?这个FC游戏光盘带有\NEWROM这个目录,video pack里可以自由建立这个目录吗?

再者,这个FC游戏VCD光盘里的\MPEGAV目录是空的,应该就是为了避免“游戏VCD 机识别到光盘有 mpg 数据切换到播放模式”吧。


第三,“可以在烧录C2D 镜像文件前手工修改掉那个dat文件”
我是菜鸟,能详细讲讲怎么做吗?

glf999 2006-12-12 12:19
第一我不懂这个技术的 只是当年被一个朋友所托进行了相关研究

可惜后来资金缺乏 研究到一半就 终止了

我说的内部细节就是指 vcd2.0的 操作连接 指向

一共好像有几种 事件默认,时间默认,返回,上一个,下一个

以及数字键跳转


您所说的加一个文件夹正是 这个video pack 的特色呢

可以在vcd 光盘中加上任意数据文件

(mp3不要加有些机器看见这个会跑大盘mp3 播放模式去 )



c2d 镜像您可以用 winhex 配合 cdmage来修改哦

把那个那个文件去掉是轻而易举的

lzero27 2006-12-12 15:19
引用
引用第14楼glf9992006-12-12 12:19发表的“”:
第一我不懂这个技术的 只是当年被一个朋友所托进行了相关研究

可惜后来资金缺乏 研究到一半就 终止了

我说的内部细节就是指 vcd2.0的 操作连接 指向
.......

斑竹过谦了 :)
用vcd2.0的 操作连接 指向,重现这个光盘的选单,一定很麻烦吧。

这里还有个关键问题要请教:

用“vcd2.0的操作连接指向”实现的选单跳转(数字、翻页),其跳转的目标是直接指向具体的ROM文件吗?还是要调用其他命令来读取ROM并运行呢?

这里涉及到了游戏VCD的FC模拟功能的实现机理了,GIF999斑竹是否有研究呢?

如果可以妆Ρπ设计游戏选单,那么下一步最大的问题在于如何做出适合游戏VCD的BIN格式的ROM了(目前按照EZ的SSforME提出的方案做的ROM还不能运行)。

glf999 2006-12-12 15:54
是的 最关键的是ROM是否正确

不能用话一切都白搭

lzero27 2006-12-12 16:44
你自己设计选单跳转,其跳转的目标是直接指向具体的ROM文件吗?还是要调用其他命令来读取ROM并运行呢?

glf999 2006-12-13 15:23
当时好像是 用啥软件转换出了 ROM文件的

时间太久了 记性不好的说 都已经忘记了

好像是 指向程序 就是画线 具体连到哪儿 实在想不起来了

当时制作 vcd 2.0 所以专门研究过 现在都忘记了啊



要是有模拟器的话我倒是愿意再进行研究

目前手里没有 CDR 和游戏VCD机

lzero27 2006-12-13 19:33
用软件转换出了ROM文件?
好像还没有这种软件哦

呵呵,这种VCD没有模拟器。

这张碟的镜像在我的网盘里有,可惜GIF999没有这种VCD机,不能得到进一步指点了

roumiou 2007-01-22 19:44
你的镜像文件提取码是什么???

在这里的http://sunland.1000uke.com/

我爸爸的vcd也是这样的,我想我们可以研究一下

我的QQ:71927369

lzero27 2007-01-24 10:49
直接下载就可以啊,不需要提取码

给个连接:http://sunland.1000uke.com/mypane.aspx?down=ok&filename=游戏中文300(FC游戏VCD光盘镜像).rar&filepath=sunland%2fFC%d7%ca%d4%b4%2f%d3%ce%cf%b7%d6%d0%ce%c4300%a3%a8FC%d3%ce%cf%b7VCD%b9%e2%c5%cc%be%b5%cf%f1%a3%a9.rar&GUID=DDCF620CF5A971584A54166999F7839B9EBC43C1BC696292

lzero27 2007-02-12 16:45
有研究裕兴VCD的高手出现了,“如果研究顺利的话,我可以把NES文件转换成VCD格式的,在裕兴VCD上面运行”,见:
http://www.lizr.net/?action=show&id=1&page=1#cm38

lzero27 2007-02-17 09:54
FC VCD 游戏光盘里的BIN格式ROM文件,比裕兴电脑VCD的BIN格式似乎要复杂一些

FC VCD 游戏光盘里的BIN格式ROM文件的文件头代码虽然相似,但是其长度和具体代码并不一致

经过分析这些BIN文件,每一种文件头长度是一定的,主要区分特征是文件开始的16个字节中的第7和第8字节,以此分类,居然有20种文件头之多。

以下是各种文件头的特征代码和其二进制数值
6790 0110 0111 1001 0000
67C0 0110 0111 1100 0000
69B0 0110 1001 1011 0000
69C0 0110 1001 1100 0000
69E0 0110 1001 1110 0000
6A60 0110 1010 0110 0000
6A90 0110 1010 1001 0000
6AF0 0110 1010 1111 0000
6B10 0110 1011 0001 0000
6B30 0110 1011 0011 0000
6B40 0110 1011 0100 0000
6B60 0110 1011 0110 0000
6D50 0110 1101 0101 0000
6D90 0110 1101 1001 0000
6DB0 0110 1101 1011 0000
6E40 0110 1110 0100 0000
6EB0 0110 1110 1011 0000
6EC0 0110 1110 1100 0000
6EE0 0110 1110 1110 0000
6F20 0110 1111 0010 0000

一共20种

光盘上的BINROM里共有约150个不同的游戏,其余都是重复的,用4-5种文件头的BINROM占了大多数。
有2-3种文件头只有1-2个游戏ROM用到。

lzero27 2007-02-17 10:04
上个图片吧,有时间慢慢琢磨,希望不会误入歧途,呵呵

这里的NES文件尺寸都是带了INES的16字节文件头的,BIN文件里没有这16字节(当然没有。。)

YZB 2007-02-17 17:31
楼主还在研究啊,支持下~

PJX8167 2007-02-17 19:45
现在用裕兴的人还不算多吧?支持下LZ 祝大家新年快乐

lzero27 2007-02-17 21:49
是呀,现在要玩FC也是用带USB的DVD了

研究FC游戏VCD纯属爱好和怀旧,就象很多还在研究FC编程的朋友一样,呵呵

楼上的朋友新年好!

ydcok 2007-02-23 13:31
这些方法我都想试一下的说 可是手里的刻录盘不充分 只有等

lzero27 2007-02-23 16:42
今天值班,在办公室又分析了一下手中的数据,终于又有收获了!
BIN文件头里第7-8字节果然是ROM偏移量的指针,只要用这个双字节16进制数加上一个常量N,就可以得到BIN文件中ROM的实际地址了,哈哈!

lzero27 2007-02-24 03:43
如果把BIN文件的内容划分为文件头、ROM、文件尾三部分的话(即假设BIN文件结构是文件头+ROM+文件尾),有了BIN文件头的指针,是不是还有文件中ROM内容之后的文件尾的指针呢?

花了4个多小时反复对比查找和推算,终于又找到了!

果然和文件头指针类似,在offset:0190开始的16个字节中,也有一个指向ROM尾部的指针。

正象文件头的结束标志是[4E6F773A257800004E6565643A257800]一样,文件尾的开始标志是[0F161912666666000000CC000000CC00]

以此,可以找到文件尾指针和推算出文件尾的偏移常量。

lzero27 2007-03-04 08:51
现在看来更替FCVCD光盘的游戏节目有点眉目了
不过,这种VCD/DVD带的模拟芯片支持的MAPPER应该有限
不太可能全部2000多个GOODNES的ROM都能在影碟机上玩

如果光盘上的BIN文件内没有CRC等校验码的话,应该可以照1楼的思路制作了
至于节目选单是否好修改,还没有研究过
如果只能替换ROM,而不能修改节目选单,还是不完美

最好能做到随意替换ROM,任意修改节目选单,以及可以增加节目数量

原光盘上有300个节目(项目),实际上是150个ROM,基本上每个ROM都重复
如果原来的150个游戏不改动,那么还有约150个备用节目可以用于替换成新的ROM
增加上150个MAPPER在0-3之内的ROM是有可能的

希望有兴趣和有能力的朋友也来参与参与,毕竟一个人的水平和精力有限,呵呵
一起努力吧!

glf999 2007-03-04 10:27
看样子 每个bin文件的大小是一样的

而其中的 nes 部分(游戏rom)却不一样大

可能是 那个模拟芯片 对每次读取的 大小有一定的要求

大了或小了 都不行


如果那个模拟芯片是硬件模拟 的话相信 MAPPER 不是问题

若是软件模拟的话 就难说了

YZB 2007-03-04 11:30
离成功又近了一步

lzero27 2007-03-05 17:19
找到VCD2.0的说明看了看,游戏选单是704X576(PAL制)的静态高清晰画面

这样选单画面修改的话应该没有什么问题。

居然在网上找到了这种游戏光盘的英文版本,原来还出口的啊,呵呵。

节目顺序和选单图片都是一样,只有文字变了,如果早点找到英文版的光盘就好了

省得一个节目一个节目地去找对应的ROM和英文名称。。。。

zdjboy 2007-03-13 12:42
难道真的就没有一个人会制作这样的光盘了吗?

lzero27 2007-03-13 15:12
从1998年左右开始出现这种游戏VCD以来,已经有无数的人问过这个问题

目前还没看到完美的制作方案出来,各大VCD/DVD厂家的技术人员也没见发表过类似的文章

现在FC游戏VCD/DVD虽然还很常见,但确实已经在加速消失了

希望在次世代游戏机完全占据我们的TV之前,能做出自己的8位游戏VCD光盘来。。。。。

lzero27 2007-03-17 19:22
大家不用研究了,今天才发现这机器其实直接支持ines ROM文件,具体看主贴吧。
是我自己比较愚钝,没有早点发现,结果绕了这么多弯路,这些天抱歉打扰大家了。

lzero27 2007-04-20 00:43
引用
引用第8楼glf9992006-12-11 12:03发表的“”:
这个我做过 当时用 video pack 制作的

完全仿制的 内部细节 在最后的 测试时因为

vcd光盘中有一个 mpg 的dat文件 所以失败
.......

今天装上了video pack 5,尝试制作选单,但是没有做成

我参考大庆网站上的教程 http://www.dvhome.cn/article/view.php?cid=11&id=27

进入VCD菜单设计,在建立了数个 播放项 后,无法将BIN文件或NES文件拖入[播放项]

这里,video pack 只认MP3、图片和视频文件,不能将其他非多媒体文件拖入建立的播放项

想请教glf999,是怎么在video pack 里,将ROM文件拖入播放项的呢?

自行车 2007-04-20 15:54
想问问楼主,配合DVD或者VCD机游戏功能的手柄是怎么样接口的?
难不成用遥控器玩?

lzero27 2007-04-20 16:00
有FC游戏的DVD机器一般带了手柄,玩坏了可以去市面上买

就是和FC游戏机一样的手柄,5-10元一对

lidaju130 2007-04-21 22:53
好复杂啊   还没太搞懂 不过还是谢谢

lzero27 2007-04-22 12:51
引用
引用第8楼glf9992006-12-11 12:03发表的“”:
这个我做过 当时用 video pack 制作的

完全仿制的 内部细节 在最后的 测试时因为

vcd光盘中有一个 mpg 的dat文件 所以失败
.......

用VCDEASY的 VCD光盘反编译(分解) 和 VCD创建 功能,可望实现部分想法:

1、用VCDEASY的 VCD光盘反编译(分解) 把这个游戏VCD光盘的结构(主要目录)分解到硬盘上来,并创建videocd.xml文件。
2、修改videocd.xml文件:替换或增加其中的ROM文件;修改静态图形选单,修改或增加播放项。
4、把增加/替换的ROM和修改的静态选单加到对应的目录(分解得到的目录)里。
5、用VCDEASY的 VCD光盘创建 功能,创建光盘映像。

看上去可行,但是到了第5步,程序发现创建过程没有视频文件,报错——VCD不完整,失败。

因为游戏VCD光盘上本来就没有视频文件,不符合标准的VCD格式,虽然修改了xml文件,但是VCDEASY还是创建不了映像。
没有视频文件的光盘videocd.xml文件中只有一条:
</segment-items>
<sequence-items/> #没有视频文件
<pbc>
  <selection id="selection-01">
    <bsn>1</bsn>

如果,在xml里加上视频文件,例如增加:
</segment-items>
<sequence-items>
  <sequence-item src="G:\FCGAME\ISO\MpegAV\avseq01.mpg" id="sequence-00"/>
</sequence-items>
#加上了视频文件
<pbc>
  <selection id="selection-01">
    <bsn>1</bsn>

则VCDEASY可以完成映像创建了,用这个映像刻盘后在游戏DVD上可以放出选单,但是一按遥控器的数字键选取游戏节目,影碟机就黑屏死机了,只有关电源。

原样做一张“中文游戏300”VCD光盘也还不容易啊,虽然这个游戏VCD光盘已经出先了6-7年了。。。。。。。。。。

寂寞黄昏 2014-02-15 17:23
支持你.我喜欢你这篇帖子,BIN如何转换NES呢?去掉文件头尾?

ander 2014-02-16 22:38
这么神奇?


查看完整版本: [-- 【讨论】FC游戏VCD光盘制作问题讨论——其实很简单 --] [-- top --]


Powered by PHPWind Code © 2003-08 PHPWind
Gzip enabled

You can contact us