slap:免费开源跨平台的ROM补丁工具,支持六种操作且性能测试表现出色!
突发slap——多功能ROM补丁工具登场ROM补丁工具可将补丁文件应用到游戏文件上把原始文件转换为变体如翻译版、修复版或其他修改版本。通常分发游戏修改成果是制作并分发用于原始文件的补丁。工具简介有开发者开发了一款名为slap的ROM补丁工具它免费且开源FOSS、跨平台、支持二十种格式、界面可爱、运行速度快还能生成小体积的补丁。开发该工具是因为在Linux系统上找不到符合需求且能与为[FXPak]准备补丁良好配合的CLI工具所以它部分是为方便脚本编写设计同时具备详细输出信息能针对各种情况给出结构化的错误、警告和提示。该工具对补丁不做预设有信心处理所有“有效”的补丁若补丁格式有误或操作结果意外slap会明确指出问题所在。slap的[CLI版本]和[Web版本]均可获取它采用Haskell和Rust编写能在浏览器中良好运行。slap支持六种操作apply补丁 原始ROM → 修改后的ROMcreate两个ROM → 补丁undo补丁 修改后的ROM → 原始ROMconvert一种格式的补丁 → 另一种格式的补丁explain补丁 → 人类可读的操作说明info补丁 → 补丁元数据。附录正确性对于任何“实际可能存在”的补丁“正确应用”是基本要求但可接受的边界需思考针对每种格式“特性X”的相关问题如特性X是否属于“规范”范畴、是否由应用者自行决定的特殊情况、是否是虽不在“规范”内但具备的能力等。文中给出了一些具体例子如IPS补丁要考虑什么样的IPS补丁才算格式良好、记录能否重叠、能否非单调排列等问题且IPS无法处理超过16MiB的文件但能描述起始位置在16MiB内但写入范围超出该界限的记录这种情况是否符合“规范”也需探讨EBP补丁支持JSON元数据要思考“规范”是“除字符串外存在其他内容即为错误”还是“任意无限嵌套”以及能否确定它必须是UTF - 8编码NINJA2补丁有“正常化”机制若输入的ROM不在“标准形式”补丁工具应转换但若补丁要求应用不了解的正常化程序工具会拒绝应用同时该格式存储输入文件的校验和且基于输入的“标准形式”开发者认为这过于保守要思考工具能否实现检查输入文件是否已符合预期格式BPS补丁似乎允许“在输出的某些部分还未填充内容时从这些部分复制数据”这种操作是否合理也需考虑PPF3补丁不跟踪文件大小且支持撤销操作但描述文件大小变化会使撤销操作不合理原始工具试图阻止文件大小变化但可能无效若用户创建改变文件大小且支持撤销的PPF3补丁或想使用撤销功能但因格式结构无法检测是否试图截断文件该如何处理也是问题。在创建补丁时采取保守策略确保生成的补丁能被任何工具正常应用在应用补丁时尝试支持每种格式的全部“表达范围”需明确“界限”所在。开发者花费大量时间思考补丁可能出现的问题如包含不合理指令还用于确保能准确识别补丁的各种格式错误。文本编码问题部分格式可存储文本元数据开发者原本以为部分甚至全部格式仅支持ASCII编码实际并非如此。输出UTF - 8编码的数据并确信这样做在所有情况下都“没错”常见规则要么是“该格式使用UTF - 8编码”要么是“该格式使用‘系统代码页’”在现代系统中UTF - 8就是系统代码页所以后者也允许使用UTF - 8编码。在读取和显示方面更复杂提供了多种备用解码选项以防UTF - 8不是读取补丁的正确编码方式。对解码和读取的数据进行保护和清理有几种格式的元数据字段可存储“任意数据”通常用来存储文本所以既不想将这些字段与常规的显示和格式转换保存机制隔离开也不想读取并执行可疑嵌入式文件中的大量控制字符做法是显示所有内容但不执行任何操作不可打印的代码点会以转义形式显示若所选编码无法解码字节序列则显示为UFFFD并给出警告说明位置。性能测试需要说明的是CLI表格中的每个数据都包含进程启动时间该工具也不例外最小的测试用时受10 - 25ms的执行和运行时间下限影响而非单纯的补丁操作时间。选取了四组前后对比的文件4MiB的GBC ROM、16MiB的GBA ROM、64MiB的N64 ROM和520MiB的光盘镜像。对于每种格式若有合适的参考工具可用于脚本化测试会让每个工具从参考文件对中创建补丁并应用记录时间取多次运行的中位数。在记录时间前会逐字节检查每个输出是否与参考文件对一致。每个单元格的格式为“slap / 参考工具”运行时间超过十五秒的记录为“15s”空白单元格表示该大小下未进行该组合的测试“—”表示测试运行但无有效数据可测量ppf3的测试在双方都关闭撤销数据的模式下进行这是参考工具的默认模式。文中给出了创建补丁的时间、创建的补丁大小、应用slap创建的补丁的时间等测试表格。在应用补丁方面表现有胜有负在卡带大小的文件上差距仅为几十毫秒且每个应用程序都能完美处理slap生成的补丁。还说明了javaxdelta在每次计时调用时都会启动一个JVM这一开销在4MiB文件的测试中占主导地位但在520MiB文件的测试中可忽略不计其库本身运行速度较快applyppf3和ninja应用程序会直接修改文件而不是生成新的输出文件所以每次计时测试都会使用预先制作的副本且复制文件的时间不计入测试在520MiB文件的测试中slap的应用时间主要用于写入520MiB的输出文件而直接修改文件的应用程序只需写入更改的字节这一行的数据实际上是两种不同操作的对比。浏览器环境测试Web版slap通常与社区长期使用的标准工具[RomPatcher.js]进行比较。选取了三组适合浏览器测试的文件对4MiB和64MiB ROM以及一组8MiB的文件对适用于无法处理64MiB文件的ips和ebp格式。双方都应用slap生成的补丁空白单元格表示该大小下未进行该组合的测试。双方的测试都在预热状态下进行即启动一次文件已加载到内存中与CLI表格不同这些测试数据不包含启动时间。文中给出了创建补丁的时间、创建的补丁大小、应用补丁的时间等测试表格。在4MiB文件的测试中RomPatcher.js在纯JavaScript环境下执行与我们的Rust差异算法相同的搜索操作导致运行时间长达15s但其生成的补丁大小与我们的相近。超过4MiB后这是其源代码中的一个阈值它会切换到线性遍历算法速度明显加快但生成的补丁更大这一权衡在补丁大小表格中有所体现。完整的测试数据、测试框架以及六种没有可脚本化参考工具进行对比的CLI格式的测试结果都可以在[结果目录]中找到。

相关新闻

基于三菱FX系列PLC的机械手控制设计机械臂设计1(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

基于三菱FX系列PLC的机械手控制设计机械臂设计1(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

基于三菱FX系列PLC的机械手控制设计机械臂设计1(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ 购买将获得:完整无水印设计报告PLC程序梯形图电气接线图等 其他注意:一经购买,概不退款,不提供指导…

2026/8/11 0:28:15 阅读更多 →
S7-1200 PLC装箱程序1(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

S7-1200 PLC装箱程序1(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_

S7-1200 PLC装箱程序1(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_ S7-1200 PLC装箱程序博图17【自动发货】S7-1200 PLC装箱程序博图17生产线自动装箱的plc控制程序 CPU 型号:S7-1200 博图17版本 包含HMI触摸屏仿真,配套报告说明…

2026/8/11 0:28:14 阅读更多 →
2026年上海企业资讯投稿渠道哪家好?深度剖析及优选指南

2026年上海企业资讯投稿渠道哪家好?深度剖析及优选指南

导语2026年上海企业品牌传播进入精细化、合规化、AI可视化新阶段,本地企业资讯投稿不再是简单的稿件发布公示,而是沉淀区域品牌公信力、搭建AI数字资产、夯实沪上行业口碑的核心途径。上海作为国内媒体资源高度集中、传播监管体系规范的核心城市&#xf…

2026/8/11 0:28:14 阅读更多 →

最新新闻

IP 地址查询接口实测评测:5 个实测可用的接口

IP 地址查询接口实测评测:5 个实测可用的接口

IP 地址查询接口实测评测:5 个实测可用的接口实测时间:2026-08-10 方式:本机 curl 真实请求,逐个发包验证 样本:114.114.114.114(国内,江苏南京电信)、8.8.8.8(海外&…

2026/8/11 1:57:52 阅读更多 →
bf16 和 fp16 及为什么更优?

bf16 和 fp16 及为什么更优?

🔬 为什么 bf16 更稳定?—— 指数位的差异 核心区别在于数据表示的范围。两者都是用16位来存储一个浮点数,但分配方式不同: fp16 (半精度):1位符号 5位指数 10位尾数。它的指数范围较小,能表示的最大数值…

2026/8/11 1:57:52 阅读更多 →
YOLO 训练中“内存爆了”和“显存爆了”的区别与排查复盘

YOLO 训练中“内存爆了”和“显存爆了”的区别与排查复盘

项目:矿区安全检测 YOLO26 六类模型与单类别补标模型1. 背景这次我们在实验室 RTX 5090 机器上训练 6 个单类别补标辅助模型,目标是用单类模型扫描全量数据集,发现原始 6 类标签中的漏标候选。其中 helmet / vest / tractor / slipper / smok…

2026/8/11 1:57:52 阅读更多 →
DeepSpeed 核心技术

DeepSpeed 核心技术

DeepSpeed 的 ZeRO 和 Offload 是两项核心优化技术,通过不同策略来解决大模型训练时的显存瓶颈。你可以把 ZeRO 看作一种“分布式切分”策略,而 Offload 则是一种“临时外借”策略。 🧩 ZeRO:模型状态的分区 ZeRO 的核心思想是将原…

2026/8/11 1:57:52 阅读更多 →
nohup 快速上手教程

nohup 快速上手教程

nohup 是 Linux 系统里一个非常实用的命令,它的全称是 “no hang up”,核心作用就是让命令在后台运行,并且在你退出终端或断开 SSH 连接后,进程依然不会中断。 它的使用场景非常典型:比如你通过 SSH 连上服务器&#x…

2026/8/11 1:57:52 阅读更多 →
企业微信AI助理开发:合规架构与零封号实践

企业微信AI助理开发:合规架构与零封号实践

1. 项目背景与核心价值Clawdbot贾维斯这个项目名称本身就很有意思——"Claw"暗示抓取能力,"dbot"指向数据库机器人,而"贾维斯"则是钢铁侠AI管家的名字。这个组合精准概括了项目的核心:一个基于企业微信官方接口…

2026/8/11 1:56:51 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →