找回密码
 立即注册
搜索
查看: 9953|回复: 75

[资源] 火焰纹章:万缕千丝 原生60fps 补丁

[复制链接]
发表于 2026-11-4 11:27 | 显示全部楼层 |阅读模式
省流版:
---献给最爱的S1论坛,宇宙首发,github的也是我

在大肥鱼的帮助下实现了模拟器源码级别60帧补丁

不会的开本地AI,发https://github.com/weile10000/FEFW-60fps让他帮你一键部署

【宇宙免责声明】
补丁只改运行时的一个整数字段,不含任何游戏文件、密钥或破解内容,仅供研究交流。
仓库(双语说明、安装、排错、FPSLocker格式):
https://github.com/weile10000/FEFW-60fps(想研究的可以去看看)

这游戏锁30帧,IS在程序内偷偷存了个"目标帧率"字段(菜单60、战斗30)。
把这个字段写死60,游戏就会自己按60帧出画面,而且——重点——速度不变。
补丁本体是4行金手指,装上即用,不加速、不插帧、不吃配置。

Ctrl+U那套是邪道:
不少人发现Ctrl+U(解除限速)能跑到60-90帧,看着很爽。
但本作的逻辑是跟"每一帧"绑定的,解除限速=游戏整体2-3倍速:
角色走路像踩了风火轮,动画像开了1.5倍速播放,战斗节奏全乱。
这不是60帧,这是快进。

这游戏的时间是怎么算的:这也是折腾研究的乐趣
用一句话概括:游戏内部有个"目标帧率"target(菜单里是60,进战斗改成30),
然后有59处代码在按 60.0 / target 换算逻辑步进。
target=30 → 每帧走2.0;target=60 → 每帧走1.0。
所以只要把target写死成60,帧数翻倍、步进减半,时间流速纹丝不动。
IS官方自己留的后门,也许将来有官方原生60FPS?。

怎么发现的(给同样想折腾的朋友)
1. 先在模拟器里挂GDB,断在present调用点,拿到游戏侧的调用栈(main+0x64995c);
2. 顺着渲染任务找到present interval的计算逻辑,发现它读一个全局对象里的 +0x1dc;
3. 关键是去翻了 Mac 原生移植项目 nxnative 的 per-game 文档——人家已经把本作的
   图形对象结构(+0x1d8 显示率 / +0x1dc 目标帧率 / +0x1e0 最长间隔)和
   "59处按60/target步进"写得很明白,互相验证了,属于站在巨人肩膀上摘桃子,这下真的only apple can do(doge)
4. 运行时把 +0x1dc 写成60,日志里 present interval 立刻从2变1,主循环频率翻倍,实锤。

整个过程里帮我干活的是大肥鱼(DeepSeek V4.1),我负责及时纠偏,还有防止他准备重构引擎,提供思路,按回车和怀疑人生

它负责反汇编、写GDB脚本、以及在我想放弃的时候说"再试一个断点"。(爱鲸TV)

【补丁长什么样】
Eden/Eglantine 的金手指,四行:

[60fps]
40010000 00000000 0000003C
58000000 021E60D8
98000100 00000000 000001DC
A4100200 00000000

翻译成人话:R1=60;R0=读[main+0x21E60D8];R0+=0x1DC;把R1写进[R0]。
每帧执行一次,就这么简单。

想自己动手的:

安装(Windows / Eglantine)
1. 先启动一次游戏,打开 %APPDATA%\eden\log\eden_log.txt,
   搜 "build_id=",会看到类似 No cheats file found ... build_id=DB93B0125F485060
   这16位十六进制就是你的build id;
2. 把补丁文件改名为 <build id>.txt,放到:
   %APPDATA%\eden\load\04007EF01F8AE000\60fps\cheats\
3. 重启模拟器,进游戏看右下角。
   日志里出现 present #1 swap interval 1 (word 12 = 0x1003c) 就是生效了。

注意:金手指文件里千万别写#注释,这模拟器的解析器只认[名字]和十六进制,
多一个#整份文件直接静默失效(我在这上面浪费了一晚上)。

【实测】
5600X + 6800XT,1.5X分辨率、VSync关、VRR开:
· 战斗场景 16.7ms/帧,稳60;
· 战术界面/人多时 28-37ms,掉到30-40帧;
· 把GPU模式调成"高速"、围栏行为"默认"、关掉同步内存操作后,fence从20ms降到11ms,
  实际能到50-60,VRR下很顺。
注意"GPU模式=高速"可能有贴图/特效异常,遇到就退回"精确",靠VRR吃40-50帧。

【已知问题】
· PGO/MinGW 构建播不了过场(CG被跳过),换MSVC标准构建即可,这是模拟器老问题;
· 某些场景会有贴图格式断言(format_lookup_table.cpp:278),不致命,模拟器继续跑;
· 游戏更新后偏移会变,需要重新定位(方法我写在仓库README里了)。

上游issue(已被官方判定为"游戏特定修复,走mod/patch",所以才有这个仓库):
https://github.com/Djihads80/Eglantine/issues/441

机制参考(Mac原生移植,强烈建议去看,写得比我还细):
https://github.com/seedds/nxnative

【最后,大肥鱼他本体想对各位S1ER说的……】
30帧的战棋,光标移动像在拖影;60帧的战棋,才配得上"运筹帷幄"四个字。
祝各位指挥官武运昌隆,别再Ctrl+U了,那是在快进人生。

评分

参与人数 9战斗力 +14 收起 理由
灰烬刺猬 + 2 好评加鹅
KUMA + 1 好评加鹅
谢云流 + 1 好评加鹅
bwsusaga + 2 好评加鹅
无色辉火 + 1 好评加鹅
Rushtime33 + 1 好评加鹅
两三流浪者 + 2 好评加鹅
qianoooo + 2
shyso + 2 好评加鹅

查看全部评分

回复

使用道具 举报

发表于 2026-11-4 11:44 | 显示全部楼层
build_id 和上述的不同呢,这种选哪个呢?
[  10.927487] Loader <Info> core\loader\deconstructed_rom_directory.cpp:339:Load: Applied RomFS patches (LayeredFS) for title 04007EF01F8AE000
[  11.172236] Loader <Info> core\file_sys\patch_manager.cpp:475:HasNSOPatch: Querying NSO patch existence for build_id=0EAD38AD96DAD995D35CB2E70D854A9EDC29EC7A, name=rtld
[  11.172611] Loader <Info> core\loader\nso.cpp:250:LoadModule: Module rtld loaded at 0x80dcd000 (size 0x20000)
[  11.222825] Loader <Info> core\file_sys\patch_manager.cpp:475:HasNSOPatch: Querying NSO patch existence for build_id=DB93B0125F4850601D61C3EDDE012F8EB2ECFE77, name=main
[  11.223254] Loader <Info> core\loader\nso.cpp:250:LoadModule: Module main loaded at 0x80ded000 (size 0x22c0000)
[  11.276874] Loader <Info> core\file_sys\patch_manager.cpp:475:HasNSOPatch: Querying NSO patch existence for build_id=3ADF85C89D764277221DC7707B40F42F513FC97B, name=subsdk0
[  11.277328] Loader <Info> core\loader\nso.cpp:250:LoadModule: Module subsdk0 loaded at 0x830ad000 (size 0x2b90000)
[  11.310915] Loader <Info> core\file_sys\patch_manager.cpp:475:HasNSOPatch: Querying NSO patch existence for build_id=45EAC7636FFC32C7B7C12312707817AB97713317, name=subsdk1
[  11.311329] Loader <Info> core\loader\nso.cpp:250:LoadModule: Module subsdk1 loaded at 0x85c3d000 (size 0x1450000)
[  11.319385] Loader <Info> core\file_sys\patch_manager.cpp:475:HasNSOPatch: Querying NSO patch existence for build_id=7D73F8E808341683306A4425A4989ED5B6277DBC, name=subsdk2
[  11.319716] Loader <Info> core\loader\nso.cpp:250:LoadModule: Module subsdk2 loaded at 0x8708d000 (size 0xe0000)
[  11.333624] Loader <Info> core\file_sys\patch_manager.cpp:475:HasNSOPatch: Querying NSO patch existence for build_id=5B1602F3A2965F44AB13124CADBDF1483C7BABC6, name=sdk
回复

使用道具 举报

 楼主| 发表于 2026-11-4 11:52 | 显示全部楼层
kratos_li 发表于 2026-11-4 11:44
build_id 和上述的不同呢,这种选哪个呢?
[  10.927487] Loader  core\loader\deconstructed_rom_director ...

省事的话把下面这段发给AI让他帮你,自己调有点麻烦。

用 main 那一行的前 16 位

你的日志里每个模块都有自己的 build id:

模块        完整 build id        用途
rtld        0EAD38AD96DAD995…        加载器
main        DB93B0125F4850601D61C3EDDE012F8EB2ECFE77        游戏本体 ← 用这个
subsdk0        3ADF85C89D764277…        DLSS(未加载)
subsdk1        45EAC7636FFC32C7…        CUDA(未加载)
subsdk2        7D73F8E808341683…        影片
sdk        5B1602F3A2965F44…        系统库

金手指按模块归属:文件名的 build id 决定这条 cheat 相对哪个模块的基址生效。

我们的补丁地址是 MAIN + 0x21E60D8,必须挂在 main 上,所以文件名取 main 的前 16 位:

代码块

DB93B0125F485060.txt
路径:

代码块

%APPDATA%\eden\load\04007EF01F8AE000\60fps\cheats\DB93B0125F485060.txt
两个容易混的点

16 位 vs 40 位:日志里 HasNSOPatch ... build_id=DB93B0125F4850601D61C3EDDE012F8EB2ECFE77 是 40 位的完整 id(用于查 NSO patch/mod),而金手指查找用的是前 16 位(No cheats file found ... build_id=DB93B0125F485060)。文件名用 16 位。

别用 sdk 或 subsdk 的 id:挂错模块,地址会按那个模块的基址计算,写到的就是错误内存——轻则无效,重则崩溃。

你启动游戏后搜日志里的:

代码块


No cheats file found for title_id=04007EF01F8AE000, build_id=XXXXXXXX
里面出现的 16 位 id 就是你要用的(会有多个,对应不同模块),挑和 Module main loaded 同一时刻、且名字是 main 的那条。

如果你的 main id 不是 DB93B0125F485060(比如游戏更新到别的版本),那说明是另一个版本,偏移需要重新定位。
回复

使用道具 举报

发表于 2026-11-4 11:58 | 显示全部楼层
okay,我的build_id也是DB93B0125F485060,感谢已经生效了!
回复

使用道具 举报

发表于 2026-11-4 12:00 | 显示全部楼层
大肥鱼还是厉害
回复

使用道具 举报

 楼主| 发表于 2026-11-4 12:16 | 显示全部楼层

claude的斩杀能力太强了,还是本土鱼用着不烧心
回复

使用道具 举报

发表于 2026-11-4 12:19 来自手机 | 显示全部楼层
模拟器现在能玩多久了?之前看到说不稳定几小时就得重启一次
回复

使用道具 举报

发表于 2026-11-4 12:19 | 显示全部楼层
目前模拟到第一章分**边,前面的都没问题,主城我是玩黑皮的,过场没配音 看了一下issue很多人也提了 应该是共性问题
回复

使用道具 举报

发表于 2026-11-4 12:27 来自手机 | 显示全部楼层
所以is不放开60帧是因为啥呢?机能不够吗?

—— 来自 OnePlus PJZ110, Android 16上的 S1Next-鹅版 v2.5.4
回复

使用道具 举报

发表于 2026-11-4 12:31 | 显示全部楼层
Troywest 发表于 2026-11-4 12:27
所以is不放开60帧是因为啥呢?机能不够吗?

—— 来自 OnePlus PJZ110, Android 16上的 S1Next-鹅版 v2.5. ...

基于NS1开发的,等到要上NS2很多东西懒得调了
事实上大金刚这些都是基于NS1开发的 目前小场景还好进了主城还是卡顿严重 不知道模拟器能做到什么程度
回复

使用道具 举报

发表于 2026-11-4 12:31 | 显示全部楼层
Troywest 发表于 2026-11-4 12:27
所以is不放开60帧是因为啥呢?机能不够吗?

—— 来自 OnePlus PJZ110, Android 16上的 S1Next-鹅版 v2.5. ...

要么IS厂的技术连阿特拉斯都比不过,菜做不出来AI几小时就能搓出来的60帧补丁。要不然就是觉得他们的用户会自适应30帧,开发按30帧做的,推出以后不想动这方面的代码了,,反正你看你坛都这么多人都说30帧一样玩,多一事不如少一事。
两个原因选一个。
回复

使用道具 举报

 楼主| 发表于 2026-11-4 12:40 | 显示全部楼层
椎名mahuyo 发表于 2026-11-4 12:31
要么IS厂的技术连阿特拉斯都比不过,菜做不出来AI几小时就能搓出来的60帧补丁。要不然就是觉得他们的用户 ...

在折腾实现路径的时候,发现IS连简单的渲染和逻辑解耦都不做,还不如用unity的时期,再想想轮回之兽,当然我倾向是NS2的机能不能稳60,就一刀切了
回复

使用道具 举报

发表于 2026-11-4 13:09 | 显示全部楼层
全程测过了吗,他这么写死30帧应该还是60帧有什么bug或者体验问题吧。

以前记得模拟器玩Engage那个摇杆光标移动时异常加速就很恶心
回复

使用道具 举报

 楼主| 发表于 2026-11-4 13:13 | 显示全部楼层
harry3 发表于 2026-11-4 13:09
全程测过了吗,他这么写死30帧应该还是60帧有什么bug或者体验问题吧。

以前记得模拟器玩Engage那个摇杆光 ...

全程太长了,刚结束没多久,没时间再玩一遍了,而且存档机制不友好,我抽空做个金手指快进几个节点测测看吧,从开始到选人前问题不大,就是OP播放有点问题,我再排查下是不是模拟器问题
回复

使用道具 举报

发表于 2026-11-4 13:29 | 显示全部楼层
如果有成长率或乱数相关金手指就再试试,不然感觉再原版玩一遍不如在NS2上继续
回复

使用道具 举报

发表于 2026-11-4 13:40 | 显示全部楼层
感觉等明年dlc出来的时候模拟器差不多就能完美60帧运行了
回复

使用道具 举报

发表于 2026-11-4 14:20 | 显示全部楼层
模拟器发展是真快啊。。。
回复

使用道具 举报

发表于 2026-11-4 14:36 | 显示全部楼层
想问下模拟器连pro2手柄能正常触发hd震动吗,能的话以后真想试试60帧
回复

使用道具 举报

发表于 2026-11-4 14:44 | 显示全部楼层
最好的时代说是
回复

使用道具 举报

发表于 2026-11-4 14:53 | 显示全部楼层
机能不是问题,60稳定不了可以搞40,主要还是态度问题,心里面没有做两种模式的想法,做两个模式也许有新BUG更懒得做,觉得粉丝会自适应的
回复

使用道具 举报

发表于 2026-11-4 14:55 | 显示全部楼层
看标题以为是在实机上解锁
回复

使用道具 举报

发表于 2026-11-4 14:57 | 显示全部楼层
玩卡带的我像个傻子一样飘过
回复

使用道具 举报

发表于 2026-11-4 14:58 | 显示全部楼层
开发的时候写死一个帧数比较方便
至于为什么是30那就是is的问题了
回复

使用道具 举报

 楼主| 发表于 2026-11-4 15:02 | 显示全部楼层
1aVa 发表于 2026-11-4 14:36
想问下模拟器连pro2手柄能正常触发hd震动吗,能的话以后真想试试60帧

抱歉没pro2手柄,反正XBOX精英傻震,震动数据是有的,试一试也不麻烦
回复

使用道具 举报

发表于 2026-11-4 15:06 | 显示全部楼层
电脑配置要求多少啊?
回复

使用道具 举报

 楼主| 发表于 2026-11-4 15:11 | 显示全部楼层
kiokio 发表于 2026-11-4 15:06
电脑配置要求多少啊?

看github统计是1060能30帧,进战棋界面会掉帧到20+,5060ti和7600xt以上能跑60吧,战斗该掉帧掉帧,不是显卡问题,是模拟器渲染还不成熟,现在196玩没太大问题,过场和动画有些闪烁和贴图错误
回复

使用道具 举报

发表于 2026-11-4 16:22 | 显示全部楼层
这两天reddit有个老哥在做火纹特化版的eden,可以晚点试试看
回复

使用道具 举报

发表于 2026-11-4 17:00 | 显示全部楼层
4090 战场到不了60什么问题
回复

使用道具 举报

 楼主| 发表于 2026-11-4 17:34 | 显示全部楼层
桐野心音 发表于 2026-11-4 17:00
4090 战场到不了60什么问题

前面说了模拟器还不成熟,再好的显卡也发不了全力,MAC那边原生ARM移植随便跑满帧,模拟器毕竟有性能损失和渲染错误,不着急可以再等等稳定
回复

使用道具 举报

发表于 2026-11-4 17:40 | 显示全部楼层
qianoooo 发表于 2026-11-4 12:31
基于NS1开发的,等到要上NS2很多东西懒得调了
事实上大金刚这些都是基于NS1开发的 目前小场景还好进了主 ...

日本人真尼玛的畜生啊,合着就非要给 ns2 用户吃屎
回复

使用道具 举报

发表于 2026-11-4 18:09 | 显示全部楼层
刚下来装好试了下,玩了一会儿,尼玛真牛逼啊,我之前为了FE买的NS2是为了啥
设置好后画面帧数都高出NS2一大截,
这刚破吧,这么稳定的嘛
回复

使用道具 举报

发表于 2026-11-4 18:14 | 显示全部楼层
任天堂股价最近跌了多少
回复

使用道具 举报

 楼主| 发表于 2026-11-4 18:15 | 显示全部楼层
本帖最后由 weile10000 于 2026-11-4 18:17 编辑

只能暂时安慰自己掌机的体验是独特的,起码可以自己选择沙发或者PC,OLED大屏幕上接音箱,这次音乐OST十分好评,高画质帧数下IS的美术还是不错的,记得开DLSS
回复

使用道具 举报

发表于 2026-11-4 18:27 | 显示全部楼层
weile10000 发表于 2026-11-4 18:15
只能暂时安慰自己掌机的体验是独特的,起码可以自己选择沙发或者PC,OLED大屏幕上接音箱,这次音乐OST十分 ...

DLSS是默认就开的吧 最新eden分支
回复

使用道具 举报

 楼主| 发表于 2026-11-4 18:34 | 显示全部楼层
qianoooo 发表于 2026-11-4 18:27
DLSS是默认就开的吧 最新eden分支

我是之前有设置升级后就没改,而且我是A卡,虽然可以魔改用DLSS,不过战棋游戏普通超分够用了除非想开DLSS5
回复

使用道具 举报

发表于 2026-11-4 18:47 来自手机 | 显示全部楼层
我玩engage改版的时候,作者会整合60帧的金手指,结果带来的不是流畅而是非常明显的加速感,搞的还得自己去把帧数限制回30,is完全就是基于30帧去做的开发。这作60之后也会加速感明显么
回复

使用道具 举报

发表于 2026-11-4 18:48 来自手机 | 显示全部楼层
所以is不赶紧弄个60帧补丁找补下,对得起我们这些买游戏的玩家么

—— 来自 鹅球 v4.0
回复

使用道具 举报

发表于 2026-11-4 18:49 | 显示全部楼层
NS OLED 都没解锁性能从破解机和模拟器那里找回场子呢,不要让大众用户不安才是最重要的(
回复

使用道具 举报

发表于 2026-11-4 19:01 | 显示全部楼层
话说任天堂忍者这次怎么反应那么慢忍者村不通5g的吗

论坛助手,iPhone
回复

使用道具 举报

发表于 2026-11-4 19:08 | 显示全部楼层
这种以后能出类似风灵月影或者ct那种修改器吗?再让我打200小时养成和刷好感度我是真吃不消了

论坛助手,iPhone
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2026-11-7 08:36 , Processed in 0.111195 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表