|
本帖最后由 william 于 2025-9-23 22:19 编辑
因为fbneo_libretro不支持nebula格式的romdata,那么想让nebula格式的romdata能在fbneo_libretro核心下运行,有2种办法:1.把nebula格式的romdata转化为fbneo格式,让核心能认识并工作。 2.增强核心,在核心中加入nebula格式romdata的处理代码,编译成增强的dll
这里说一下第一种方法(已实现),第二种方法有空再去做,基于对fbneo独立版本的解读,实际就是正确解读nebula格式的romdata,然后构造 rominfo ,其余和fbneo格式romdata处理方式差不多。
我们先看一下nebula格式的romdata文件内容:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
System: CPS1
RomName: wofjryu
Game: 三国志2 降龙
Parent: wofj
[Program]
tk2j23c.bin,0,80000,0,0
tk2j22c.bin,80000,80000,0,0
[Graphics]
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
[Z80]
tk2_qa.5k,0,20000,C9183A0D,0
[Samples]
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
[System]
DriverId:
DriverInit: 0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
读文件,遇到System这行,保存基板类型,这里是CPS1
然后把RomName: wofjryu
Game: 三国志2 降龙
Parent: wofj
对应成
ZipName: wofjryu
DrvName: wofj
FullName: "三国志2 降龙"
nebula数据第二列数据是载入地址,fbneo不需要这个数据,因为根据子系统类型,可以正确载入,那么保留 1,3,4,5列,而通常第五列为0,需要根据nebula提供的基板类型(System:后面的文字)和章节内容 []内的文字去生成第五列(因为去掉了第二列,实际是第四列)
那么如何生成第五列内容呢,根据这个帖子里的定义ROMDATA的类型和子系统详解 - 模拟FAQ - 肖琪模拟游戏站 - Powered by Discuz! (xqemu.cn),去生成即可。
这里重点是需要完整的解析基板类型对应的子系统,否则就会产生无法转换的问题。
|
|