本帖最后由 lrf739146825 于 2025-9-21 11:51 编辑
william 发表于 2025-9-21 11:39
那现在的问题是,转换老版本的romdat到新版本的romdata,没有固定规则,需要换驱动文件,这个转换就不好用 ...
编写Romdata需要对驱动有一定了解,这是一次性工作。一个rom对应一个romdata。新老版本存在较大差异,例如老本版的Romdata里 Parent: mslug4加密解密是通过 GfxCrypt 和 GfxKey 控制,在新版里没有加密的改版直接使用解密版的rom做驱动就行。
新版本都没有处理老版本romdata的 system节点,合金弹头4这个例子中是没有处理 system节点的解密信息。
另外几个也有system节点,不处理也会无法运行romdata,比如 wofj这个
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
System: CPS1
RomName: wofjryu
Game: 三国志2 降龙
Parent: wofj
tk2j23c.bin,0,80000,0,0
tk2j22c.bin,80000,80000,0,0
tk2_01.3a,0,80000,D9CB9BF,0
tk2_02.4a,2,80000,45227027,0
tk2_03.5a,4,80000,C5CA2460,0
tk2_04.6a,6,80000,E349551C,0
tk2_05.7a,200000,80000,E4A44D53,0
tk2_06.8a,200002,80000,58066BA8,0
tk2_07.9a,200004,80000,D706568E,0
tk2_08.10a,200006,80000,D4A19A02,0
tk2_qa.5k,0,20000,C9183A0D,0
tk2-q1.1k,0,80000,611268CF,0
tk2-q2.2k,80000,80000,20F55CA9,0
tk2-q3.3k,100000,80000,BFCF6F52,0
tk2-q4.4k,180000,80000,36642E88,0
DriverId:
DriverInit: 0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
系统节点有 DriverInit: 0,只单纯转换,结果是:
ZipName: wofjryu
DrvName: wofj
ExtraRom:
FullName: "三国志2 降龙"
//romname romsize crc type
tk2j23c.bin, 0x80000, 0x00000000, 1 | BRF_ESS | BRF_PRG
tk2j22c.bin, 0x80000, 0x00000000, 1 | BRF_ESS | BRF_PRG
tk2_01.3a, 0x80000, 0x0D9CB9BF, 3 | BRF_GRA
tk2_02.4a, 0x80000, 0x45227027, 3 | BRF_GRA
tk2_03.5a, 0x80000, 0xC5CA2460, 3 | BRF_GRA
tk2_04.6a, 0x80000, 0xE349551C, 3 | BRF_GRA
tk2_05.7a, 0x80000, 0xE4A44D53, 3 | BRF_GRA
tk2_06.8a, 0x80000, 0x58066BA8, 3 | BRF_GRA
tk2_07.9a, 0x80000, 0xD706568E, 3 | BRF_GRA
tk2_08.10a, 0x80000, 0xD4A19A02, 3 | BRF_GRA
tk2_qa.5k, 0x20000, 0xC9183A0D, 4 | BRF_ESS | BRF_PRG
tk2-q1.1k, 0x80000, 0x611268CF, 5 | BRF_SND
tk2-q2.2k, 0x80000, 0x20F55CA9, 5 | BRF_SND
tk2-q3.3k, 0x80000, 0xBFCF6F52, 5 | BRF_SND
tk2-q4.4k, 0x80000, 0x36642E88, 5 | BRF_SND
因为没处理系统节点的驱动初始化信息,这个转换后的运行是黑屏的。
所以这些老版本的romdata,在核心上是无法运行了,核心没有代码支持老版本romdata,转换格式到新版本也没有用程序可实现的固定的方法,需要经验来处理..
作为 fbneo_libretro.dll的用户,虽然是免费用户,也许没资格提要求,但我得到的是一个和原版独立模拟器功能有明显差异,也可以说是功能不完整的核心,心情是沮丧的...
本帖最后由 lrf739146825 于 2025-9-21 12:41 编辑
william 发表于 2025-9-21 12:14
新版本都没有处理老版本romdata的 system节点,合金弹头4这个例子中是没有处理 system节点的解密信息。
另 ...
不要管什么新版老版,新版和老板没有任何关联,照着新版的方法去写就行了。
你这个的Type值写错了。
你要使用wofj,就通过FBNEO独立模拟器导出wofj的Romdata模板进行修改。 Type值,可以使用源码里的表达式,也可以使用导出模板里的直接值。
lrf739146825 发表于 2025-9-21 12:37
不要管什么新版老版,新版和老板没有任何关联,照着新版的方法去写就行了。
你这个的Type值写错了。
你要 ...
可能您忽略了我在做什么,我不是去做romdata,我是调用fbneo核心,支持romdata的运行,现在可以运行新版romdata,但无法运行老版本romdata,这是核心功能裁剪,去掉了独立模拟器支持的老版本romdata功能造成的。就是说核心是缩水的,功能少于独立模拟器....某种程度上,尝试去理解核心的作者....
本帖最后由 lrf739146825 于 2025-9-21 12:56 编辑
william 发表于 2025-9-21 12:42
可能您忽略了我在做什么,我不是去做romdata,我是调用fbneo核心,支持romdata的运行,现在可以运行新版r ...
老版本romdata 是FBNEO原本不存在功能,是后来的尝试性引入。 FBNEO主推自家的新版Romdata逻辑,这个新版才是FBNEO原本支持Romdata的方式,这个态度在 “[解读] FBNeo romdata 写法的基本介绍” 这个帖子已经明确表达了。用新老来称呼或许会造成误会,Nebula格式对于FBNEO来说是外来者,FBNEO格式才是本家,也是最符合FBNEO工作机制的格式。
lrf739146825 发表于 2025-9-20 13:18
RetroArch 自带 libwinpthread-1.dll ,位于RetroArch根目录。使用RetroArch不会有任何问题,网盘和GitHu ...
请教一下,这个改了编译哪个选项或者编译命令实现的不用这个动态库,而使用libwinpthread.a 内部静态库的版本
william 发表于 2025-9-24 15:21
请教一下,这个改了编译哪个选项或者编译命令实现的不用这个动态库,而使用libwinpthread.a 内部静态库的 ...
https://github.com/lrf739146825/FBNeo/commit/ba264de0613b4f095951ca752a85163ab31c4323