万事俱备,只欠东风。现在软硬件都有了,想通过SD卡玩游戏就只差一步了:制作DreamShell SDL用的iso镜像。
上一楼里,我提到了SWAT的网站提供了一个iso制作工具的下载:
Updated ISO Make pack 。有了这个工具,制作DS SDL专用iso将变得很简单,只需依次做到下面几个步骤:
1. 解压iso_make.7z到某个目录,如 x:\temp\iso_make\
2. 抽取D版光盘或光盘镜像的IP.BIN和所有游戏文件
3. 如果是SEGA或第三方推出的游戏,把IP.BIN复制到 x:\temp\iso_make\Make_ISO\sys\katana 目录;如果是自制游戏如各种模拟器,把IP.BIN复制到 x:\temp\iso_make\Make_ISO\sys\homebrew 目录
4. 把第2步得到的所有游戏文件和目录(除了IP.BIN)复制到 x:\temp\iso_make\Make_ISO\cd 下
5. 如果是SEGA或第三方推出的游戏,先运行 x:\temp\iso_make\Make_ISO 目录下的 Hack_LBA.bat,再运行 Create_katana_ISO.bat;如果是如果是自制游戏如各种模拟器,直接运行 Create_homebrew_ISO.bat
6. 把生成的image.iso复制到SD卡中,插到DC的读卡器,开机运行DS SDL,进入DS主画面之后移动摇杆选择File Manager,进入SD目录运行image.iso,即可。
以上是基本流程,不过制作过程可能还会遇到一些零碎的问题,下面展开说说。
1. 解压iso_make.7z 如果iso_make.7z 没法解压,这个最好办,下载个7-zip压缩软件并安装,即可。
2. 抽取D版光盘或光盘镜像的IP.BIN和所有游戏文件 这一步可能会用到如下软件: daemon tools, isobuster, iso_make里自带的Gdi2Data。daemon tools用来载入CD镜像,isobuster可以将CD光盘或CD镜像的IP.BIN抽取出来,而Gdi2Data是用来抽取GDI即正版镜像的。下载我就不提供了,daemon tools和isobuster都是很容易下载到的工具,有人习惯用其他工具也没问题。
daemon载入镜像就不说了,地球人都知道。isobuster提取IP.BIN也很简单:打开isobuster,左上角选择deamon载入镜像的虚拟光驱(或插入CD光盘的真实光驱),在session 2上右键,Extract From-To,Length(LBA)填16,下面的抽取类型 Extract Type 选 User Data (2048 bytes),Start Extraction,指定目录和文件名即可。
抽取IP.BIN
抽取选项
然后可以用windows的资源管理器或者使用isobuster的Extract Objects 将session 2的所有文件和目录复制到 x:\temp\iso_make\Make_ISO\cd 目录下。
需要注意的是,如果这个游戏光盘/镜像是经过加密的,这么简单的拷贝会出现问题。如何识别加密?如果发现Session 2的起始LBA是45000而不是11700/11702,就很有可能是加了密;如果再用windows的资源管理器查看到光盘内所有文件和目录的大小 比在光盘盘符上“右键-属性”看到的大小还要大,就可以肯定是加了密的。如何对付这种加密的游戏?我现在没时间去弄这个,以后再写吧……
如果你想将GD镜像中的文件和IP.BIN抽取出来,可以使用iso_make里自带的Gdi2Data。用法很简单:把*.gdi和*.bin都复制到 x:\temp\iso_make\Gdi2Data 目录,运行Gdi2Data.bat,就可以在Gdi2Data目录下生成IP.BIN,而Gdi2Data\data目录下就出现了从GDI抽取的文件和文件夹。
如果你只有*.bin文件而丢失了相应的*.gdi文件,不要紧,可以直接在DOS下调用Utilities目录下的工具bin2iso.exe,将bin文件转换成iso文件,再进行文件的抽取;如果你手头有个*.iso格式的GD镜像,可以先在DOS下调用Utilities目录下的工具gdinfo_FG.exe查看iso信息,再使用extract.exe将IP.BIN和游戏文件、文件夹全部抽取。下面是这几个工具的调用格式:
bin转换为iso:
bin2iso your_bin_file.bin output.iso 查看iso信息:
gdinfo_FG.exe your_iso_file.iso 抽取IP.BIN和游戏文件:
extract iso_image1.iso (适用于高密度区只有一条数据轨的镜像,即只有一个bin/iso构成的镜像)
extract iso_image1.iso iso_image2.iso iso_image2_start_sector (适用于高密度区有两条数据轨的镜像,需要指定第二条数据轨的起始LBA)
3. 复制IP.BIN 其实SWAT已经附带了一个IP.BIN在iso_make压缩包的 Make_ISO\sys\katana 目录和 Make_ISO\sys\homebrew 下,大部分游戏都可以直接使用这个IP.BIN制作镜像。不过对于个别游戏,只有使用自己的IP.BIN才能成功制作出可以使用的镜像,所以制作流程上还是统一好了:对每个游戏都使用自己的IP.BIN。
4. 游戏文件和目录的复制 这一步中,不要把IP.BIN放到 x:\temp\iso_make\Make_ISO\cd 下,否则个别游戏制作出来的镜像可能会有问题。
5. boot文件的hack 第2步抽取的游戏文件中,应该有一个boot文件,一般都叫做1ST_READ.BIN。它也可能叫其他名字,比0WINCEOS.BIN,或者1ST_USA.BIN之类。用UltraEdit、HexWorkShop之类的文本编辑工具,在十六进制下打开游戏的IP.BIN,可以在地址为0060h的这一行看到这个游戏的boot文件名。
目前DreamShell的版本是4.0.0 beta 4,这个版本存在一个bug:如果这个boot文件的名字(.BIN之前的部分)不是8个字符,那么制作出来的镜像将无法被DS SDL正常运行。因此,如果你的boot文件名长度不是8,需要手动将文件改名,还要对IP.BIN进行十六进制编辑,把0060h行右侧对应的ASCII字符也改成相应的名字。我已经把这个bug向SWAT反馈并得到了确认,下一版DreamShell应该会将其修正。IP.BIN中的boot文件名
如果boot文件名是0WINCEOS.BIN,那么你基本上可以不用往下进行了:这是个WINCE游戏(如SRW Alpha),而DreamShell目前是不支持WINCE游戏的,悲剧……
boot文件中包含了session 2的起始地址信息。制作DS SDL能读取的镜像,需要将boot文件中的这个起始地址修改为0,也就是对boot文件进行hack。一般情况下,在完成了上述操作之后可以直接运行Hack_LBA.bat,这个脚本会自动根据 x:\temp\iso_make\Make_ISO\sys\katana\IP.BIN 中的信息查找 x:\temp\iso_make\Make_ISO\cd 目录下的boot文件,并自动进行修改。这个脚本调用的实际上是 x:\temp\iso_make\Make_ISO\sys\binhack32.exe 这个工具。然而,有少数游戏是无法使用binhack32.exe进行hack的,比如日版的GD镜像 生化危机代号维罗妮卡。所以,如果发现用Hack_LBA.bat进行hack并制作出来的镜像无法正常运行,可以尝试着用dahack.exe进行hack,调用的格式是:
dahack YOUR_BOOT_FILE.BIN 0 另外还有一些游戏是无法用dahack,而只能用binhack32进行boot文件修改的,比如高达战役在线试玩版cdi。所以dahack和binhack谁也替代不了谁…… 我在这层楼提供了dahack.exe的下载,需要的同学自取。
对于非官方游戏如FC模拟器之类,hack步骤就省去了,把文件放在该放的地方之后运行Create_homebrew_ISO.bat就可以了。
6. iso文件的复制 文件拷贝么,其实没什么好说,说点相关的东西吧:
- iso文件名可以改成你想改的名字,但文件名只能是字母、数字和下划线组成的,不能有空格,不能用中文;
- 有时候用的好好的SD卡会突然不识别,在排除了硬件问题的情况下可以考虑把卡的DS目录删掉,重新从DreamShell 4.0 Beta 4 (Form SD Loader) 这个压缩包里把这个目录解压到SD卡根目录。
- DS SDL理论上最大支持32G的SDHC卡,我试用的最大容量是8G。一般找一张2G的就够用了。TF卡有点不保险,因为有些不支持SPI串口模式访问。
- 可以使用cdi4dc和nullDC模拟器验证你的iso镜像制作得是否正确:cdi4dc iso_file_name.iso cdi_file_name.cdi -d,将生成的CDI镜像用nullDC运行,一般就知道镜像的制作是否有问题了。当然这个方法也不绝对,因为有些游戏是nullDC支持而DS SDL不支持的,如疯狂出粗车2。应该也有一些游戏是DS SDL支持而nullDC不支持的,不过我一时还没遇到。
- 如果你在上面的第4步执迷不悟,一定要将IP.BIN复制到 x:\temp\iso_make\Make_ISO\cd 目录,那么cdi4dc可能无法正确的将iso转换成nullDC可以运行的cdi。这时候可以用bin2boot转换这个iso到cdi。
最后是dahack.exe和cdi4dc的下载:
dahack.rar (15 K) 下载次数:85 cdi4dc.rar (38 K) 下载次数:75 [ 此帖被ms18e在2010-12-07 00:25重新编辑 ]