Skip to content

Releases: cnut1648/sd-gundam-g-generation-ds

SD高达G世纪DS 完全汉化 v1.6

Choose a tag to compare

@cnut1648 cnut1648 released this 12 Aug 11:59

这版把界面汉化收了尾:标题页、附加菜单、BackStage 全层级菜单、系统设置页、战斗中的 START 菜单、章节标题、存读档界面、战场上的势力与地形标记,连同图鉴标题与 EV 回顾文本,一次性补齐——从开机到战斗 HUD,此前只剩日文图块的那些画面基本都补完了。另外修掉四处显示问题,其中一处会把战斗直接打卡死。特别感谢 dyzz 这一轮交来的六个高质量 PR(#24、#25、#28、#30、#32、#33,全部采纳)以及三份自查报告(#26、#27、#29);感谢 victorgm105 的 #31 报告(带存档),也感谢贴吧的 洛漓lx、星尘的轨迹s 两位的反馈。


界面汉化补齐

标题页 · 附加菜单 · BackStage(PR #24)

  • 标题与模式选择:按START键!、开始 / 继续、附加、普通模式 / 特殊模式。
  • 附加菜单:资料、角色、机体、EV回顾、声音、返回。
  • BackStage 全层级:作战 / 编成 / MS开发 / 系统;作战内容 / 地图 / 索敌 / 进击;配属 / 列表 / 别动队;格纳库 / 系统图;保存 / 读取 / 设置,各级菜单的说明文字一并补齐。
  • START、EV、SE 这三处保留原版字形(只调了填充灰度),中文标签统一了描边、灰度与对齐。

这些不是字符串而是图块,所以做法是在原版 NitroFS 文件与 ARM9 既有压缩块里就地重绘、重排:不新增 ROM 资源,不扩大原文件,共享图块按原容量做写时复制与去重——改一个标签不会污染另一个画面。

系统设置页与战斗 START 菜单(PR #24)

  • 设置页:文字显示速度、画面切换速度、B键跳过消息、指令执行确认、战斗指示、显示我军以外战斗动画、显示我军战斗动画,以及 快/慢、开/关、个别/近战/射击、确定。首周目仍只显示前六项,二周目多出的那项照旧由原版运行时条件控制,进度判定没动。
  • 战斗中 START 菜单:回合结束 / 保存 / 读取 / 设置,回合确认 结束回合? 与 是 / 否。

章节标题 · 存读档界面 · 地形栏(PR #24)

  • 章节标题:101 条关卡记录的两条标题路径全部汉化——章节卡片与存档列表/战斗页头(共 356 条、404 个指针位)。存档列表里的章节编号前缀保留原版 ASCII 字形,SP/X/TR/TU/TL/FB 这些代号和数字编号仍待在同一个固定字段里,不会串位。
  • 存读档界面:标题栏、章节 / 回合 / 游戏时间 三行,以及 开始前 / 普通 / SP / 通关 状态标记(在原版自定义 LZSS 容器内整体重建)。
  • 战场标记:势力栏 战舰 / 自军 / 友军 / 敌军,地形与移动标记 回避 / 万 / 泛 / 宇 / 空 / 地 / 水。

标题用到的新字形不是硬塞进字库的:9 个只在图鉴传记里出现的字先挪进日文区的空格,腾出来的中文格加上 1 个空格、1 个冗余格,才安置下所有标题字形——字库总容量与原来完全一致。

图鉴标题与 EV 回顾(PR #25)

  • EV 标题 54 条、人物图鉴 274 条、机体图鉴 239 条(名称与作品名)——这六个资源的元数据存的是相对偏移,字符串不能单独替换,因此是成对确定性重建 + 逐条回读校验。
  • EV 回放脚本尾部的文本补齐:提取上界扩到 0x1AD75E,事件文本由 1,267 条增至 1,297 条,原有条目不覆盖、不重排。
  • 人物/机体名称继续按 roster id 从既有译名表关联,不重复维护、不重译已有的 274 条人物简介与 239 条机体简介。

卡死与显示修复

强夺高达交战卡死(#29、#31 → PR #30)

平成线第 21 话打「强夺高达」(玩家常说的「掠夺高达」)会卡死。根因不在剧情脚本:交战确认画面的「当前武器」栏只有 96px,而第一武器「双联超高初速防盾炮」按中文 12px 字距是 108px,多出来的字形越过行尾写进隔壁战斗图形显存,把后续战斗要用的数据打坏。

修法两条腿走:武器名改为「超高初速防盾炮」(84px),同时给这块绘制区加运行时行宽裁剪(当前武器 96px、当前 ID 64px)。全量核对过 226 个实际武器名不超 96px、639 个 ID 名不超 64px,并加了武器名宽度门禁和反向自测。

战斗内 ID 指令详情被右侧裁切(#27 → PR #28)

战斗中查看 ID 指令详情,长效果行会被屏幕右边界切掉——西格·韦德纳的「借我力量!」末尾「装甲+4」显示不全。面板从 x=8 起按 12px 步进画,一行最多 20 格,而这类模板有 22 格。

审计了 246 条有效详情,重排其中 22 个超宽模板(覆盖 44 条 ID 指令记录),一并修掉几处不合理断点(ID1 与「回合」不再拆开、ID 不再拆成 I/D)。门禁扩展为:日版存在的「(效果)」在中文版必须仍可见,详情最多三行、每行不超过 20 格。绘制器行为没动。

其他显示修复

  • EV 鉴赏列表首字缺笔(PR #25):24×2 的标题列表按日版固定 24 格 padding 继续绘制,中文 12px 步进使 padding 跨到下一行,擦掉首字下沿。加了精确到该表的裁切 guard,不放宽到其他界面。
  • 永恒号六格配属栏边框(PR #32):汉化版把永恒号搭载数由 2 提到 6,装载逻辑正常,但编成画面第四母舰栏仍按原版两格布局画,第 3~6 格没有背景和边框。现在背景与空槽边框都按完整 32 图块复制,并跳过原版两格的终止边——复用其他母舰现成的六格模板,不新增图片、不动容量逻辑与存档格式。
  • 章节标题字形槽位冲突(PR #33):本轮 PR #24 自己引入的回归——给「逅」分配字形时占了原本属于「目」的槽位 4276。现已把 4276 还给「目」(207 处既有引用不变),两处「逅」迁到未用的 4157,并加了预编码槽位检查防止同类覆盖。

已知问题:TWiLight Menu++ ≥ v27.12.3(#26,未修复)

在用 nds-bootstrap ≥ v2.3.0(即 TWiLight Menu++ ≥ v27.12.3)的烧录卡上,本汉化可能出现 Data Abort。原因是「作战内容」简报/帮助文本库落在 0x023E7000,而 nds-bootstrap 自 2024-12-16 起把 NitroFS FNT/FAT 缓存下移到 [0x023EC1E8, 0x023F8F98),两者重叠 20,976 字节:loader 写缓存时踩掉文本库尾部,游戏下一次 NitroFS 查表就读到坏数据。

这一版没有修掉它。issue 里提的「整体下移 0x10000」方案已实测不可行:[0x023C0000, 0x023E7000) 是活动内存不是空洞,重定位后的构建在模拟器里开机即卡死、20 帧内库内 5,068 字节被游戏覆盖;那一段最大空闲块只有 0x749C,装不下 0xA3D8 的库,真正的修复需要拆库。

本版新增 autoload_bank_loader_safety 门禁,从构建产物自身的自动加载列表算出重叠并以棘轮方式钉死:重叠只许减少,一旦变大立刻失败(PR #24 把库从 0x98FC 扩到 0xA3D8 时,重叠曾静默加深 2,780 字节,就是这类事故)。遇到问题的玩家可暂时用 TWiLight Menu++ v27.12.2(nds-bootstrap v2.2.2)或改用模拟器;进展请关注 #26。

校验信息

文件 sha1
汉化 ROM(30,364,008 字节) d5f8f7544241769b192abed7cca3d503515cb740
32 MiB 补齐版(部分烧录卡用) 80cc3a81297e3c7c02b2e042c2cd4d371a5f33c9
所需日版 ROM(不变) 12443b91297a57bcd2ace8da989c26ae635a79fd

静态检查从 v1.5 的 48 项加到 57 项,全数通过;新增的九项是:设置页图形、存读档界面图形、战斗系统菜单图形、图鉴标题、EV 回放查找表冻结、字形身份一致性、武器名宽度、配属母舰槽位边框、自动加载库与 loader 安全(上一节的棘轮)。单元测试 31 项全过。构建照旧可复现:拿日版 ROM 跑 build/build.py,出来的字节应当分毫不差——本次发布的两个文件就是在干净环境里从日版 ROM 重新构建的,哈希与 data/manifest.json 逐项吻合。

存档说明

游戏内存档(.sav / 烧录卡存档)直接沿用,换 ROM 就能接着玩。模拟器的即时存档(savestate)绑定旧 ROM 内容,换版本前请先在游戏里正常存一次,进 v1.6 后从游戏内存档读起。

致谢

  • dyzz:PR #24(标题页/附加菜单/BackStage/设置页/战斗 START 菜单/章节标题/存读档界面/地形栏)、#25(图鉴标题与 EV 回放文本)、#28(ID 指令详情裁切)、#30(强夺高达交战越界)、#32(永恒号六格边框)、#33(标题字形槽位冲突),全部带完整根因分析与回归测试,照单采纳;另有 #26(TWiLight 兼容性)、#27、#29 三份自查报告。
  • victorgm105:#31 卡死报告,附了存档,帮助确认与 #29 同源。
  • 贴吧 洛漓lx(ID 指令详情裁切)、星尘的轨迹s(第 21 话交战异常)的反馈。

v1.5 发布说明

Choose a tag to compare

@cnut1648 cnut1648 released this 23 Jul 11:06

本次发布在 v1.4 的基础上,修复了剧情对话光标与正文 tile 重叠、WQY 中文字形栅格两处问题。构建输出的 ROM 哈希已随之更新。


构建产物哈希(更新)

产物 大小 sha1
sd-gundam-g-generation-zh.nds 30,359,400 字节 96e4ed45c280d0cc58f8348ca5fe6384114a2af3
--pad32m 32 MiB 补齐镜像 33,554,432 字节 f886b4f2ccb62b14b42317eb0d3928f262b53efd
输入(日版卡带镜像,不变) 33,554,432 字节 12443b91297a57bcd2ace8da989c26ae635a79fd

data/manifest.json 仍为三个哈希的权威记录;构建为单趟确定性流程,逐项校验后最终校验 ROM 哈希。


变更明细

1. 修复剧情光标与选择框 tile 重叠(PR #22 · 399d8f2)

问题:加宽后的对话正文占用 OBJ tile 808..915,而原版「继续/等待」光标基址仍为 912,其上传的 4 个 tile 覆盖了正文尾部,在对话文字中出现重复的光标残片。

修复:不移动文字、不额外占用 OBJ 显存。将两条光标构造路径的 tile 基址由 912 改为 916——

  • 选择支路径:data/patches/code_patches.json @ 0x2BA38(90030000 → 94030000)
  • 普通支路径:0x2BB00(90030000 → 94030000)

916..919 复用左选择框选择器资源;右选择框仍为 920..923;三个立绘槽止于 779。固定分区为:立绘 300..779、名牌 780..807、正文 808..915、光标/左选择框 916..919、右选择框 920..923。

配套:

  • 新增静态测试门 dialogue_nameplate_geometry 断言:两条光标基址一致、紧邻正文尾部之后、且不与右选择框重叠;并含把某路径还原为 912 的负向测试。
  • docs/LESSONS_LEARNED.md 新增 G14 经验条目,记录「加宽共享 OBJ 表面后必须审计每一个同级状态、优先复用状态兼容资源而非新占 tile 带」的规律,并标注 916..919 属状态兼容复用、非全局空闲区。

2. 修复 WQY 中文字形栅格(PR #23 · ee46f6f)

问题:部分基本 CJK 字形栅格化不正确。

修复:从预处理好的 WQY 9pt BDF 重新生成既有 CJK 图集槽位,叠加游戏原生 2bpp L 形阴影,将 346 个已注册基本 CJK 字符写回其原有槽位。拉丁字母、数字、符号、标点、假名及作者手工调整的窄格逐字节保留不变。

新增脚本:

  • build/regenerate_wqy_atlas.py —— 从 BDF 复制位图行、加阴影、回写图集,并记录变更字符清单;带基准/预期图集 sha256 与槽位数量自检。
  • build/wqy_bitmap.py —— WQY 位图字体处理。
  • data/font/wqy_raster_changes.json —— 变更字符清单(栅格差异记录)。

产物影响:data/font/atlas12.bin 更新,随之刷新 data/manifest.json 中 arm9、output_rom、output_rom_padded 哈希,及 README.md、docs/BUILD_GUIDE.md 中的预期输出哈希。

提交记录

提交 说明
3637e14 Merge PR #22:修复剧情光标与选择框 tile 重叠
f640ce0 Merge PR #23:修复 WQY 中文 glyph rasterization
ee46f6f 修复 WQY 中文字形栅格
399d8f2 修复剧情光标与选择框 tile 重叠
35e21a3 docs:标记 audit/ 已移除(已从全部历史清除)

SD高达G世纪DS 完全汉化 v1.4

Choose a tag to compare

@cnut1648 cnut1648 released this 22 Jul 08:00

这版是给 v1.3 收尾的:v1.3 放宽情报页绘制宽度时手松了一点,ID 指令面板跟着遭殃,这次连根修掉,还补了两道守卫,保证同类问题以后出不了门。另外处理了三处名牌/机体名显示问题,顺手把日版原作自带的一个通关弱化 bug 也解决了。特别感谢 dyzz 又交来两个高质量 PR(#20、#21,全部采纳),还帮忙转报了 #16、#17 两个贴吧反馈;感谢 colinzrg 的 #18、#19 两个报告,截图和复现步骤一应俱全。


v1.3 回归修复

战场情报 ID 指令面板花屏(#16)

战场上选任意机体 → 情报 → 按方向键下翻页,三块 ID 指令面板的说明文字糊成一片烂字。

这是 v1.3 自己引入的:当时为了让特殊能力说明画全一整行,把一处绘制宽度上限放宽了,但范围划大了——ID 指令页恰好走同一批绘制,也跟着放开,一条画到 208 像素宽,把旁边两块面板整个盖掉。这次把放宽收窄到特殊能力说明那一栏,其余绘制一律恢复原样。修完在新旧三个 ROM 上逐笔比对过绘制决策:ID 页逐位回到 v1.2 的样子,v1.3 修好的特殊能力说明原封不动。

光修还不够——这个回归当时可是顶着 44 项检查全绿出的门。所以这次配了两道守卫:一道静态检查把这处补丁的字节和作用范围钉死;另加一个实机自动测试,在模拟器里真开一局新游戏、打完第一关、出击、翻到情报页,逐笔核对每次绘制的宽度。拿 v1.3 的 ROM 跑这个测试,当场判红——守卫确实抓得住。

显示修复

  • 剧情对话名牌撕裂(#19):08a 卡多与浦木宏交战中途触发剧情时,说话人名字字形撕裂,正文还整体右移了半截。根因:v1.3 把姓名牌加宽到 14 格后,战斗中这类"宿敌对话"框还按旧的 10 格尺寸建,和新版面对不上号。两边同步之后字形完整、正文归位。
  • 编成·别働队名字缺角(#18):备战页进"编成别働队",上屏人物和机体名缺下半截,"里克·迪亚斯"看着像"甲吉·迪亚斯"。这和 v1.3 修的 #14 黑屏是同一族的病,只是这次不卡死、只花字:这块名牌用的背景图不在行宽裁剪的名单里,名字画到行尾卷回行首,把首字的下半截盖掉。把这张图也纳入裁剪即可。已用报告者的存档实机验证,名字全字显示。
  • 配属界面长机体名缺字(PR #20):配属下面板里"卡碧尼Mk2/普露机"这类长机体名,末字缺笔画。一次图块拷贝拷多了,越过机体名的区界冲进机师名区,机师名一重绘就把尾字擦掉。现在这处拷贝按区界收口,长名画得全。

原版 bug 修复

  • 卡缪/捷利特通关后弱化(PR #21):日版原作自带的 bug——通关之后,卡缪已觉醒的强化人形态可能被打回默认状态;捷利特在 SP7S 关的基础形态数据也配错了一处。这次一并修正,并加了构建检查钉住,防止哪天又倒回去。

校验信息

文件 sha1
汉化 ROM(30,359,400 字节) 38da86c90765eb2ec5dfcde0f27df4b923e3bfcc
32 MiB 补齐版(部分烧录卡用) 39acd1baee6b65e2ef8a2408a117f569e66a45db
所需日版 ROM(不变) 12443b91297a57bcd2ace8da989c26ae635a79fd

静态检查从 v1.3 的 44 项加到 48 项(情报页宽度作用域、配属机体名图块分区、配属机体名字节预算、通关形态数据四项是新的),全数通过;25,686 行游戏文本逐行离线渲染,零新增问题;实机自动测试新增一项(模拟器内真实走完 新游戏 → 出击 → 情报页 的流程)。构建照旧可复现:拿日版 ROM 跑 build/build.py,出来的字节应当分毫不差。

存档说明

游戏内存档(.sav / 烧录卡存档)直接沿用,换 ROM 就能接着玩。模拟器的即时存档(savestate)绑定旧 ROM 内容,换版本前请先在游戏里正常存一次,进 v1.4 后从游戏内存档读起。

另外查了一起"进配属选克莉丝就卡死"的报告(#17):结论是 v1.1 时代生成的存档里有一处机体数据被写坏,不是 ROM 的问题。修复存档后用原封不动的 v1.3 ROM 验证一切正常;v1.2 及以后版本生成的存档不受影响。

致谢

  • dyzz:PR #20(配属机体名分区)、#21(通关形态修正),照旧带着完整的根因分析和回归测试,全部采纳;另转报了 #16、#17(来自贴吧 洛漓lx、SF宅)。
  • colinzrg:#18、#19 两个显示问题报告,截图清楚、复现路径完整。

SD高达G世纪DS 完全汉化 v1.3

Choose a tag to compare

@cnut1648 cnut1648 released this 21 Jul 04:55

这版主要干一件事:清卡死。v1.2 放出后陆续收到两个必现卡死的反馈,这次都挖到根上修掉了。顺带把姓名牌、机体图标这几处显示问题一起处理,译名也校了一批。特别感谢 dyzz 一口气交来三个高质量 PR(#12、#13、#15,全部采纳),也感谢 glzg0513-web 两次反馈都带着截图和复现步骤,省了大量排查时间。


卡死修复

1. 08a 过关后过场必卡死(#10)

打完 08a(以及个别回顾性过场),"黑历史"过场放到最后一帧就定住,按什么键都没反应。

查下来是过场字幕的锅:这类字幕每段共用一个 36 字节的行缓冲,日文靠假名和缩写字典能挤进去,中文全是双字节,一段超长就写穿缓冲,把旁边的指针踩坏,游戏直接进异常死循环。修法是把超宽的字幕重新断句,每段都收进 36 字节以内(08a、06SP、98 话共用的 UC 回顾旁白全部过了一遍),另外新加一道构建检查,以后哪段字幕超长,ROM 根本打不出来。

2. 个别指令 / 战斗选武器黑屏卡死(#14)

盖马克、卡碧尼普露/普露兹专用机这几台机体,一进个别指令的配置界面(或战斗里拉出武器列表)就黑屏,声音也停。

根子和上面那个不是一回事:武器列表这块画面用的背景图不在行宽裁剪的名单里,武器名加参数一行画得太宽,字形像素越界写进了隔壁战斗贴图的显存。游戏发现贴图坏了就每帧重新读盘解压,无限循环,永远出不来。把这张图也纳入裁剪后,宽列表照常显示,战斗正常打。之前有玩家发现"盖马克过几关又自己好了",不是玄学——列表内容变了,宽度恰好缩回安全线而已。精神感应高达Mk2 这类同样中招的机体一并修好。

显示修复

  • 剧情对话姓名牌加宽(PR #15):原姓名牌只有 10 格宽,"基西莉亚·扎比"这种 7 字名末尾像素会卷到下一行,首字缺笔画。现在扩到 14 格,9 个全角字都放得下;加宽出来的边框补的是对话框同款深绿,看不出接缝。
  • 配属页第三条 ID 指令标题缺下半截(PR #12):左侧标题和右侧能力文字共用一段图块区,能力文字后画,正好盖掉第三条标题的下半行。现在两边图块区间彻底分开,266 条配属文本逐条和渲染基准比过像素,全对。
  • Turn A 机体小图标花屏(PR #13):v1.2 把"运动""移动"两个词加长之后,多出来的字节恰好写进 Turn A 缩略图的像素区。这次把两个词挪进 UI 文本区安置,并把全部 250 张机体缩略图冻结校验——以后谁再往图上写字,构建当场报错。
  • 战斗中特殊能力说明截断:战斗"情报"页里,特殊防御/特殊能力的说明一行只画 9 个字,"威力450以下的光束属性射击无效"显示成"威力450以下的"。上限放宽到 26 字(正好一整行框宽),说明能画全了。

攻略.html

  • 上面的译名改动全部同步进攻略。
  • 修了一个日文原文提取的老毛病:名字以 Ⅱ、完 这类字收尾时会被截断,サイコガンダムMkⅡ 一直显示成"ガンダムMk9"。现在取全了。

校验信息

文件 sha1
汉化 ROM(30,359,400 字节) 74c252a4fffa44d4a2fad830e682b174778b25a3
32 MiB 补齐版(部分烧录卡用) 248e36714cc594da38b6d0a9bacf265a17ada2aa
所需日版 ROM(不变) 12443b91297a57bcd2ace8da989c26ae635a79fd

静态检查从 v1.2 的 40 项加到 44 项(字幕字节预算、配属图块分区、缩略图冻结、姓名牌几何四项是新的),全数通过;25,686 行游戏文本逐行离线渲染,零新增问题。构建照旧可复现:拿日版 ROM 跑 build/build.py,出来的字节应当分毫不差。

存档说明:游戏内存档(.sav / 烧录卡存档)直接沿用,换 ROM 就能接着玩。模拟器的即时存档(savestate)绑定旧 ROM 内容,换版本前请先在游戏里正常存一次,进 v1.3 后从游戏内存档读起。

致谢

  • dyzz:PR #12(配属页图块分区)、#13(Turn A 图标)、#15(姓名牌加宽+形态名校对),三个 PR 都带着完整的根因分析和回归测试,直接采纳。
  • glzg0513-web:#10、#14 两个卡死报告,截图齐全、复现路径清楚。

SD高达 G世代 DS 简体中文汉化 v1.2

Choose a tag to compare

@cnut1648 cnut1648 released this 20 Jul 09:40

v1.2:把整套数据换成「以游戏 ROM 为唯一底本」的提取器管线,483 个角色/机体
全部对着日文原文重译,攻略.html 收全游戏内文本,v1.1 留下的几处死机一并修掉。
一步构建、可复现。

数据管线(提取器优先,游戏 ROM 是唯一底本):

  • 重写整套提取器,直接从日版 ROM 把每条记录连同它在 ROM 里的地址一起读出来,
    落成 data/jp。这份日文原文全由程序生成、门禁盯着,一律不许手改。
  • data/zh 只留翻译本身,按提取器给的地址和编号重排,跟游戏内数组一一对上;
    日文不再两头各存一份,要看原文就近查 data/jp。
  • 新增对账门禁:每条译文都得对上一条真实的日文记录,提取器覆盖不到就是它自己
    漏了——只补提取器,绝不删记录。

全量重译与术语统一:

  • 对着日文原文,逐条重译并交叉复核全部 483 个角色与机体条目,走「先暂存、
    再校验、后落地」的流程;改前改后逐字段留了对照表备查。
  • 术语过一遍后统一定名,一条条记进 docs/TRANSLATION_GUIDE.md,省得同一个词
    东一个译法西一个译法。
  • 名台词、ID 指令与效果、机体武器与特殊能力/防御,全对着游戏本体重新核过。

解码器全量审校(先读得对,才谈得上译得对):

  • 补齐 renderB 界面字体的身份表(578 个槽位),弄清它和 12×12 图集压根不是
    一套字:同一个码,图集是「兵」,renderB 却是「無」。
  • 逐个核对 1068 个在用图集槽位的字形身份,改掉 18 处认错的、补回 43 个原先
    没认出来的叙事字。
  • 收拾完 data/jp 通篇不留乱码;再拿它当唯一底本去校译文,就不会以讹传讹。

攻略.html:不开游戏也能读完剧情和数据:

  • 不再只是路线加开发树。build_guide.py 直接从 ROM 反解,照游戏那两套字体管线
    逐字还原,日文原文和中文实机渲染并排摆着看。
  • 这回收全了:每关的剧情对话(按演出顺序、带说话人)和作战简报,每个角色的
    名台词、ID 指令和效果,每台机体的武器和特殊能力/防御,还有图鉴传记。
  • 顺手修了图鉴传记的切分错位:以前拿日文偏移去切中文字节,从第二条起整体
    串位,上一条的尾巴漏进下一张卡;改成日文按日文切、中文按中文切。位图默认
    收起,想看点一下「显示位图」。

崩溃与显示修复(多是 v1.1 的回归,一律从源头改,不拿补丁摞补丁):

  • 出击死机:v1.1 把机体名和人物名搬到了 0x0219 常驻段,可读取路径不认这么高
    的指针,一部署就黑屏死机——不止卡碧尼,54 台机体加 41 名人物全中招。这回把
    这批名字搬回 0x190000 以下的安全零区,根上解决。
  • 暴击后整台机消失:三条 ID 技能名被塞进了战斗击退动画的坐标表(那几格日文
    填零表示「不动」),暴击击飞时把字节当坐标读,直接把机体甩出屏幕两万像素,
    连暴击弹窗和伤害数字一块儿飞没了。把这三条挪走就好。
  • 战斗血量数字空白(issue #1):v1.1 的一处代码补丁盖住了显示血量用的格式串;
    把补丁挪开、串回到日版原位,再加门禁盯死。
  • _STG20A 二周目软锁:同类毛病——译文压在了关卡事件要用的活数据上,挪到
    安全空当,配回归门禁。
  • 08a 过关卡死(issue #10):过场字幕走定长 36 字节的行缓冲,一段超长就冲垮
    邻近指针、双重异常锁死。把几段过宽的字幕按字节重新断行、每段都压到 36 字节
    以内,ROM 大小和指针一点没动。
  • 一批观感问题一起收了:姓名框基线落到日版墨线上、匹配标签补回日文斜杠、
    Profile 和开发系统图的首字下半截补全、名牌括号与型号码改用日文窄字形。

工程化与门禁:

  • 静态门禁从 29 道加到 41 道,多出来的大半是把「活表不许压」这条铁律拆成一个个
    具体检查(喊话行、机体资源 id 表、关卡事件操作数、字幕字节预算、名牌池
    token……),每道都先写红再转绿。
  • 一步构建、逐项哈希校验、结果可复现。
  • sha1:
    主 ROM 872cad280e9096762638b972a74a7bca630b615f (30,359,400 字节)
    32 MiB 补齐镜像 1f6a0f6873ad3fcd65564bdb2b88439196dcea08
    输入日版 ROM 须为 12443b91297a57bcd2ace8da989c26ae635a79fd

致谢:

  • 特别感谢 dyzz 提交的一批社区 PR,v1.2 全部采纳:补齐四关 31 条遗漏剧情(#9)、
    校订西洛克变换部件和日文注释(#8)、补回匹配标签斜杠(#6)、姓名框基线修正
    (#4)、Profile 与开发系统图首字下半截(#3,对应 issue #2),以及「保留全部
    HP 格式指针」的思路(#11,对应 issue #1)。
  • 也谢谢报问题的几位:glzg0513-web(#10,08a 卡死)、shindio(#2,文字缺角)、
    victorgm105(#1,敌方血量消失)。

SD高达 G世代 DS 简体中文汉化 v1.1

Choose a tag to compare

@cnut1648 cnut1648 released this 13 Jul 04:08

本次为 v1.1 质量修订版。

  • 全文本审校 —— 对话、战斗喊话、ID 技能名与名台词、机体/武器/人物名、 图鉴全面复核:名台词恢复社区通行完整台词,清除截断式技能名与残留假名, 译名按大陆主流用法统一 40 余项(布莱特、格雷米、杜加奇、克莱因、捷多、 亚洲尊者、零式系统、D·特里埃尔 等)。
  • 字库重制与补全 —— 12×12 中文字库由 zpix(最像素) 全面更换为 文泉驿点阵宋体(WenQuanYi Bitmap Song,WQY)(两者均为开源字体), 并新增 60+ 简体字形(桥、楼、渣、滓、榴、薙、爵、畅、嫣、飙、β 等), 全部文本零改写措辞直译落地;修复名牌/武器页的字形错乱 (多佛炮、光束薙刀、加里波第β 等)。
  • UI 渲染对齐 —— ID/机体/武器页面的中文字形基线与日版逐像素对齐 (下移 3px),指挥/NT 等级数字与文字同基线,不再浮字或下沉。
文件名 SHA 用途
sd-gundam-g-generation-zh.nds d3bb7bfe3c7c445ae8edbb1e98991874a4fe660b 大多数用这个就好了
sd-gundam-g-generation-zh.pad32m.nds 0950ce95b7d1b8058e3afc8cec4dc5a1f7127c0a 部分模拟器需要用 pad32 才行
sd-gundam-g-generation-zh(示例存档) 4edd856dc681b68414313566fc0f313ff0561723 示例存档,第一档为 C 路线,第二档为 UC 路线,第三档为平成路线

v1.0 · SD高达 G世代 DS 简体中文汉化

Choose a tag to compare

@cnut1648 cnut1648 released this 06 Jul 10:33

SD高达 G世代 DS(任天堂 DS,日版)简体中文汉化 —— 首个正式版本。

机体、武器、驾驶员、战斗、剧情、图鉴与界面 全流程汉化;构建确定性、可复现,最终 ROM 按哈希逐项校验。

✨ 汉化内容

  • 全流程简体中文:机体 / 武器 / 驾驶员 / ID 指令 / 能力 / 部件名,界面标签,剧情与作战简报,战斗喊话与必杀技台词,图鉴介绍等。
  • 交互式流程攻略 攻略.html(离线单文件、无需联网):路线图 / 关卡 / 角色 / 隐藏要素 / 觉醒·Hyper Burst / 设计图·改造 / 术语库。

🎮 相比日版原作的游戏性改动(三处)

  1. SP 关卡解锁放宽 —— 由 3~4 次索敌降为 只需 1 次索敌。
  2. 永恒号搭载数提升 —— 战舰「永恒号」由 2 机提升为标准的 6 机。
  3. 倒X(ターンX)移除等级门槛 —— 获得倒X 不再要求驾驶员 LV30,任意等级 即可获得。

📦 下载与校验

下载本页附件的汉化 NDS 镜像即可游玩;或自备日版卡带转储后,按 README.md 一条命令构建(字节级一致)。

文件 sha1 大小(字节)
汉化 ROM a7e49a7be0230d02fcb969a9c5ff30151fa69a3b 30,324,584
汉化 ROM(补齐 32 MiB) 05686c7cb8f863e573ba6e0aae77ea0983ab7206 33,554,432
输入日版 ROM 12443b91297a57bcd2ace8da989c26ae635a79fd 33,554,432

📖 文档

构建指南、数据格式、地址表、翻译规范等见仓库 docs/;快速上手见 README.md。