主题 : 【讨论】关于FC&MD&SFC游戏的修复问题
级别: 模拟专家
UID: 321536
精华: 0
发帖: 142
威望: 0 星
金钱: 80 浮游币
贡献值: 16 点
好评度: 420 点
人气: 3 点
在线时间: 541(时)
注册时间: 2019-10-28
最后登录: 2025-04-06
楼主  发表于: 2021-06-15 08:09

【讨论】关于FC&MD&SFC游戏的修复问题

01楼 & 08楼,FC修复Header(unh格式,nes格式,unf格式)
02楼 & 09楼,MD修复checksum(md格式,smd格式,bin格式)
03楼 & 04楼 & 05楼 &10楼,SFC修复checksum(sfc格式,smc格式)
06楼,GB修复checksum(gb格式,gbc格式)

引用
相关工具:uCON64
使用命令:ucon64 --chk ROM文件名
相关链接:https://ucon64.sourceforge.io
[ 此帖被xiong_online在2025-04-05 23:53重新编辑 ]
本帖最近评分记录:
  • 人气:+1(willzyj) 辛苦了,送你 1 点人气
  • 作為壹個失敗的栗子,只要笑笑就好。
    大版權時代來臨,資源的儲備足夠嗎?
    级别: 模拟专家
    UID: 321536
    精华: 0
    发帖: 142
    威望: 0 星
    金钱: 80 浮游币
    贡献值: 16 点
    好评度: 420 点
    人气: 3 点
    在线时间: 541(时)
    注册时间: 2019-10-28
    最后登录: 2025-04-06
    沙发  发表于: 2021-06-15 08:10

    FC测试:
    模拟器:VirtuaNES v0.0.6.7
    测试ROM:Alien 3 (USA) (v1.1) [CHS]70506F6F.nes
    引用
    【FC文件前十六字节(16 bytes)内容】
    (字节0到3必须为以下内容,用来识别文件)
    0 = 4E(N)
    1 = 45(E)
    2 = 53(S)
    3 = 1A(字符中断,必要!)
    (字节4到8或15,可以.修改)
    4 = PRG(ROM的大小 / 16)
    5 = CHR(VROM的大小 / 8,0表示卡带板子使用了VROM)
    6 = D0:1 表示垂直镜像,0 表示水平镜像
           D1:1 表示有电池记忆,SRAM地址$6000-$7FFF
           D2:1 表示在$7000-$71FF有一个512字节的trainer
           D3:1 表示4屏幕VRAM布局
           D4-D7:ROM Mapper的低4位
    7 = D0-D3:保留,必须是0(其中D3 = 1 ,为NES 2.0标识符
           D4-D7:ROM Mapper的高4位
    8 = PRG-RAM的大小(很少使用的扩展)
    9 = 电视系统(很少使用的扩展)
    10 = 电视系统,PRG-RAM的存在(非官方的,很少使用的扩展)
    11到15 = 未使用,应全部为零(部分ripper会把他们的名字放在7-15之间)
    相关链接:https://www.nesdev.org/wiki/INES

    NESMapperProgram.zip (95 K) 下载次数:0

    【例子】
    [ROM信息] PRG:128K,CHR:128K,MAPPER:4
    PRG = 128 / 16 = 8,十六进制为 08
    CHR = 128 / 8 = 16,十六进制为 10
    MAPPER = 4,十六进制为 04
    则FC文件前十六字节内容为:4E 45 53 1A 08 10 40 00 00 00 00 00 00 00 00 00

    [ 此帖被xiong_online在2025-04-05 23:33重新编辑 ]
    作為壹個失敗的栗子,只要笑笑就好。
    大版權時代來臨,資源的儲備足夠嗎?
    级别: 模拟专家
    UID: 321536
    精华: 0
    发帖: 142
    威望: 0 星
    金钱: 80 浮游币
    贡献值: 16 点
    好评度: 420 点
    人气: 3 点
    在线时间: 541(时)
    注册时间: 2019-10-28
    最后登录: 2025-04-06
    板凳  发表于: 2021-06-15 08:13

    MD测试:
    模拟器:Fusion v3.64
    测试ROM:TinHead  (USA) (Hack)6AB8A2EF.bin
    引用
    Fusion 跳过红屏步骤:选项 → 设置 → Genesis → 自动修正校验(红屏是由ROM文件实现的

    checksum是通过将每两个字节(16位,从$200到ROM末尾)相加得出的。
    然后将其与存储在 $18E 中的值进行比较,如果值不同,游戏将显示红色屏幕并停止运行。

    MD格式是将BIN格式的数据进行了插值排列,GEN格式等于MD格式
    SMD格式就是在MD格式上添加了512字节的Header数据,每16KB为一组进行了插值排列

    修复工具:FixCheckSum(多重保护的没效
    修复步骤:单击“Load MD/32x ROM”按钮选择文件,点击“Fix CheckSum”,直到按钮变成灰色
    相关链接:https://en.wikibooks.org/wiki/Genesis_Programming
    相关链接:http://2006.emu618.org:6180/thread-95773-1-1.html

    FixCheckSum.zip (8 K) 下载次数:10
    genesis_rom.zip (6 K) 下载次数:4


    [ 此帖被xiong_online在2025-04-05 23:36重新编辑 ]
    作為壹個失敗的栗子,只要笑笑就好。
    大版權時代來臨,資源的儲備足夠嗎?
    级别: 模拟专家
    UID: 321536
    精华: 0
    发帖: 142
    威望: 0 星
    金钱: 80 浮游币
    贡献值: 16 点
    好评度: 420 点
    人气: 3 点
    在线时间: 541(时)
    注册时间: 2019-10-28
    最后登录: 2025-04-06
    地板  发表于: 2021-06-15 08:15

    SFC测试:
    模拟器:snes9x v1.43
    测试ROM:Mujintou Monogatari (Japan) (Fix) [CHS]5DC5BD2A.sfc
    引用
    校验不通过,游戏开始会有bad checksum提示
    Check Sum是通过将每个字节(8位)相加得出的;Complement Check是Check Sum的位逆。
    Complement Check + Check Sum = FFFFh
    SMC格式就是在SFC格式上添加了512字节的Header数据,转换工具:SNESTool、GoodSNES、inSNESt

    修复工具:IPSandSUM
    修复步骤:
    1.使用十六进制编辑器查看前200h数据是否有大量的00(可选)
    2.使用SNESTool移除Header(SMC转SFC,新文件比之前小512字节)
    3.使用IPSandSUM修复一下(修复checksum,有时候需要扩容)
    4.使用模拟器运行(测试是否正常)
    相关链接:https://en.wikibooks.org/wiki/Super_NES_Programming/SNES_memory_map
    相关链接:https://sneslab.net/wiki/SNES_ROM_Header

    IPSandSUM.zip (144 K) 下载次数:1
    SNESTool.zip (19 K) 下载次数:0
    SNESROM_HEADER.zip (5 K) 下载次数:1
    超任ROM文件头格式解析.zip (5 K) 下载次数:2


    [ 此帖被xiong_online在2025-04-05 23:36重新编辑 ]
    作為壹個失敗的栗子,只要笑笑就好。
    大版權時代來臨,資源的儲備足夠嗎?
    级别: 模拟专家
    UID: 321536
    精华: 0
    发帖: 142
    威望: 0 星
    金钱: 80 浮游币
    贡献值: 16 点
    好评度: 420 点
    人气: 3 点
    在线时间: 541(时)
    注册时间: 2019-10-28
    最后登录: 2025-04-06
    草席  发表于: 2021-06-15 08:28

    SFC详细修复教程(删除文件头&修复checksum)
    测试ROM:Metal Max Returns (Japan) (v0.95) (Fix) [CHS]1D70F60E.smc

    1、使用模拟器运行ROM,有bad checksum提示



    2、观察文件大小:4194816字节,不能被1024整除,可以判断为有Header

    3、使用十六进制编辑器查看前200h数据,有大量的00



    4、使用SNESTool移除Header



    5、使用IPSandSUM修复(最终CRC32:B8E36EDF)



    6、使用模拟器运行,OK

    [ 此帖被xiong_online在2025-04-05 19:17重新编辑 ]
    作為壹個失敗的栗子,只要笑笑就好。
    大版權時代來臨,資源的儲備足夠嗎?
    级别: 模拟专家
    UID: 321536
    精华: 0
    发帖: 142
    威望: 0 星
    金钱: 80 浮游币
    贡献值: 16 点
    好评度: 420 点
    人气: 3 点
    在线时间: 541(时)
    注册时间: 2019-10-28
    最后登录: 2025-04-06
    5楼  发表于: 2021-06-15 08:32

    SFC详细修复教程(修改中间文件头&修复checksum)
    测试ROM:Wonder Project J - Mechanical Boy Pino (USA) (v20180510) [CHS]94F1E44F.sfc

    1、使用模拟器运行ROM,有bad checksum提示



    2、观察文件大小:3.12 MB (3,276,800 字节),使用CT扩容到4 MB,填充00



    3、使用十六进制编辑器查看前200h数据,没有大量的00,判断为sfc文件

    4、修改FFC0h中间文件头(ROM标题修改为:WONDERPROJECT J,其余填充20;快速HiROM,30修改为31;美版,00修改为01



    5、使用IPSandSUM修复(最终CRC32:1CEA842D)



    6.使用模拟器运行,OK

    [ 此帖被xiong_online在2025-04-05 19:34重新编辑 ]
    作為壹個失敗的栗子,只要笑笑就好。
    大版權時代來臨,資源的儲備足夠嗎?
    级别: 模拟专家
    UID: 321536
    精华: 0
    发帖: 142
    威望: 0 星
    金钱: 80 浮游币
    贡献值: 16 点
    好评度: 420 点
    人气: 3 点
    在线时间: 541(时)
    注册时间: 2019-10-28
    最后登录: 2025-04-06
    6楼  发表于: 2021-06-15 08:52

    GB测试:
    模拟器:BGB v1.5.6
    测试ROM:Kiteretsu Daihyakka - Bouken Ooedo Juraki (Japan) [CHS]D5AB832C.gb
    引用
    014D:Header Checksum
    通过将每个字节(8位,从0x134到0x14C)相加得出的。

    014E-014F:Global Checksum
    通过将每两个字节(16位,除了0x14E和0x14F)相加得出的。

    修复工具:BGB
    修复步骤:加载ROM → 打开调试器(ESC) → 文件 → 修复校验码 → 保存ROM到...
    相关链接:https://gbdev.gg8.se/wiki/articles/The_Cartridge_Header




      
    [ 此帖被xiong_online在2025-04-05 23:25重新编辑 ]
    作為壹個失敗的栗子,只要笑笑就好。
    大版權時代來臨,資源的儲備足夠嗎?
    YZB
    级别: 超级版主

    UID: 12451
    精华: 6
    发帖: 19131
    威望: 173 星
    金钱: 11020 浮游币
    贡献值: 12694 点
    好评度: 54956 点
    人气: 4322 点
    在线时间: 20365(时)
    注册时间: 2004-10-02
    最后登录: 2025-04-06
    7楼  发表于: 2021-06-15 22:11

    为啥这贴好像看过一样?

    部分md游戏应该没校检

    部分md游戏地址0x18e改成0000的话也会跳过校检
    级别: 模拟专家
    UID: 321536
    精华: 0
    发帖: 142
    威望: 0 星
    金钱: 80 浮游币
    贡献值: 16 点
    好评度: 420 点
    人气: 3 点
    在线时间: 541(时)
    注册时间: 2019-10-28
    最后登录: 2025-04-06
    8楼  发表于: 2021-08-07 16:55

    FC补充说明:
    模拟器:Mesen v0.99
    测试ROM:Super Mario Bros. (World)D445F698.unh、Super Mario Bros. (World)3337EC46.nes、Super Mario Bros. (World)393A432F.nes
    引用
    unh格式:无Header,即无文件头
    nes格式:使用iNES 1.0标准,包含Header(16 bytes)
    unf格式:为了比iNES 1.0更好的描述Mapper,后来被NES 2.0取代
    nes格式:使用NES 2.0标准,包含Header(16 bytes),是对iNES 1.0的扩展

    修复工具:Mesen
    修复步骤:加载ROM → 调试 → 编辑iNES头部 → 另存为
    相关链接:https://www.nesdev.org/wiki/INES
    相关链接:https://www.nesdev.org/wiki/UNIF
    相关链接:https://www.nesdev.org/wiki/NES_2.0



    [ 此帖被xiong_online在2025-04-05 23:52重新编辑 ]
    作為壹個失敗的栗子,只要笑笑就好。
    大版權時代來臨,資源的儲備足夠嗎?
    级别: 模拟专家
    UID: 321536
    精华: 0
    发帖: 142
    威望: 0 星
    金钱: 80 浮游币
    贡献值: 16 点
    好评度: 420 点
    人气: 3 点
    在线时间: 541(时)
    注册时间: 2019-10-28
    最后登录: 2025-04-06
    9楼  发表于: 昨天

    MD修复教程:
    引用
    修复工具:AFS FIX CheckSum MD 32X(多重保护的没效
    修复步骤:点击“OPEN ROM”按钮选择文件,勾上“Fix size on the ROM Header”,点击“FIX CHECKSUM”按钮
    相关链接:https://www.romhacking.net/utilities/1610


    [ 此帖被xiong_online在2025-04-05 20:10重新编辑 ]
    作為壹個失敗的栗子,只要笑笑就好。
    大版權時代來臨,資源的儲備足夠嗎?
    级别: 模拟专家
    UID: 321536
    精华: 0
    发帖: 142
    威望: 0 星
    金钱: 80 浮游币
    贡献值: 16 点
    好评度: 420 点
    人气: 3 点
    在线时间: 541(时)
    注册时间: 2019-10-28
    最后登录: 2025-04-06
    10楼  发表于: 昨天

    SFC修复教程:
    引用
    修复工具:Advanced SNES ROM Utility
    修复步骤:SFC转SMC,点击“Add Header”按钮;SMC转SFC,点击“Remove Header”按钮;
    修复checksum,点击“Fix Checksum”按钮;HiROM转LoROM,点击“LoROM<->HiROM”按钮
    相关链接:https://www.romhacking.net/utilities/1638


    作為壹個失敗的栗子,只要笑笑就好。
    大版權時代來臨,資源的儲備足夠嗎?