主题 : 【分享】修复能在克隆GDEMU上正常游玩的维罗妮卡
YZB
无广告位,看帖子签名
级别: 超级版主

UID: 12451
精华: 6
发帖: 19007
威望: 173 星
金钱: 5825 浮游币
贡献值: 9859 点
好评度: 54611 点
人气: 4322 点
在线时间: 18712(时)
注册时间: 2004-10-02
最后登录: 2024-04-24
楼主  发表于: 2022-03-04 21:28

【分享】修复能在克隆GDEMU上正常游玩的维罗妮卡

管理提醒: 本帖被 YZB 执行加亮操作(2022-03-06)
首先,这个帖子我可能会原封不动的用中文转发到国外的论坛上去,所以为了能使老外能用翻译软件看懂这个帖子,下面我会尽量用一些简单的词汇来进行说明

发这个帖子可能会影响到某些人的利益,但是我的目的并不是如此


本贴的目的只是想进行技术上的讨论和交流,如果本贴对某些人的利益照成了影响,本人深表歉意




GDEMU是由波兰人Deunan开发的一款在DREAMCAST主机上使用的硬件设备,其作用是代替主机上的整个光驱板,使其可以在主机上直接使用sd卡来玩游戏

论坛下面这个贴有比较详细的介绍,我就不多介绍了

http://bbs.chinaemu.org/read-htm-tid-96589.html






安装方法和使用说明官网都有非常详细的介绍
以下是GDEMU作者官网链接:

https://gdemu.wordpress.com/ordering/ordering-gdemu/

这个项目官网介绍说是从2008年开始,期间固件更新了很多次。详细的更新说明官网也有介绍:

https://gdemu.wordpress.com/firmware/updating-gdemu/


想买的话可以在官网订购,但是官网是不定期开放预售,而且每次只放出有很少部分,这使得很多人捏着钱包望眼欲穿,想买也买不到



直到2018年的时候,GDEMU的硬件固件被克隆了下来,市面上开始出现大量的克隆版本


对于克隆版的是非对错,本人不予评论,只是拜克隆版所赐(量大便宜管够),本人也凑热闹买了一块,所以做了一点研究(不过有条件的话还是提倡去官网买,可以支持原作者,毕竟有钱了才能有动力继续更新固件或者开发其他设备)



那么原版和克隆版有什么区别呢?


这里做个简单的介绍


原版固件可以更新,目前最新版的固件已经到5.20.3了,不排除以后还会有更新的可能


克隆固件停留在当时的最后版本,5.15.0,而且克隆固件是不能更新的


那么排除价格和使用材料因素的话,原版和克隆版就是固件版本的区别了

看固件版本的更新说明,因为克隆
使用的是5.15.0版本,那么从这个版本往上就是和原版的差别

5.20.3→→→→→→→原版最新固件

稳定性提升#2


5.20.2(未发布)

稳定性提升#1


5.20.1

CD-XA 媒体的游戏检测修复→→→→→→→(可以看成是bleem模拟器对ps游戏碟片格式的支持)


5.20.0

系统代码更新SoA 和 RE:CV 自动时序配置文件→→→→(维罗妮卡和阿卡迪亚的bug修复)
用于手动限制 GDEMU 速度的新 INI 选项

5.15.0→→→→→→→→→→→→→克隆固件的最后版本

内部变化使用较新的编译器



看起来没有什么大的更新,只有5.20.0版有针对生化维罗妮卡和阿卡迪亚的bug修复更新


这2个游戏比较特别,在5.15.0或以下版本运行时会出现一些bug(以下会做详细的介绍)


现在是2022年,算下来GDEMU到现在已经有十几年了,克隆版本的出现也快有四年了

那么现在为这2个游戏在克隆版本上能正常游玩做一个修复应该不会对原版的销售照成什么影响吧


本贴的目的只是想进行技术上的讨论和交流,如果本贴对你的销售照成了影响,本人深表歉意


这次我们先说RE:CV,也就是生化危机,代号维罗妮卡,另外一个游戏等这个游戏测试没有问题再更新

大多数人只知道生化危机 维罗妮卡这个游戏在5.15.0版的GDEMU上会在CD2遇到老虎头无限拿宝石的bug,

只有少数人知道在这个游戏其实还有另外一个bug,就是在游戏菜单界面,查看文档的时候出现的bug
只是这个bug不怎么明显,也不是特别影响游戏,所以很多人都没怎么注意到


有bug的情况:中间的文档被缩小了,并且书签不会显示






正常情况是下面这样的:中间的文档显示正常,书签页面也显示正常






那么是什么造成这些bug的呢?这么明显的bug当年负责测试游戏的都没测试出来吗?

其实答案也很简单,因为GDEMU不是使用光盘作为媒介,所以读取速度和时间都加快了很多,照成原来本因需要运行的一部分程序没有运行到,结果bug就出现了。

至于为什么当年负责测试的没测试出来,可能是因为当年都是使用光盘作为测试的吧。

程序员为了能加快游戏的运行速度,尽可能的让游戏运行速度更流畅一点,减少读取的时间,不惜一切代价对程序做了最大的优化。


所以在这个游戏中,当遇到需要从光盘读取数据的时候,程序员优化的程序流程大概是这样的:

按帧进行判断(注意,按帧进行判断是指在一个完整的游戏流程里面进行判断,并不是特指在读取数据这里做单独的一个循环判断,而是指这个游戏每帧运行到这里,判断完毕以后,都会返回游戏跑完完整的一圈流程,然后再次重新进入到这里来继续进行判断,直到读取完毕以后程序才会切到其他地方)

第1帧:给定一些参数,程序按照参数开始从光盘读取数据到内存


第2帧:判断数据是否读取完毕,如果读取完毕,则退出数据读取判断,下次程序不会再来这里。如果未读取完毕,则对游戏一些内存做初始化操作


第3帧:判断数据是否读取完毕,如果读取完毕,则退出数据读取判断,下次程序不会再来这里。如果未读取完毕,则继续对游戏进行一些内存操作


第4帧:判断数据是否读取完毕,如果读取完毕,则退出数据读取判断,下次程序不会再来这里。如果未读取完毕,则继续对游戏进行一些内存操作


...................................................................


第N帧:判断数据是否读取完毕,如果读取完毕,则退出数据读取判断,下次程序不会再来这里。如果未读取完毕,返回,下一次继续来这里的循环点判断




从上面的流程我们就不难看出,程序为了保持流畅性,在读取数据的时候是实时的,在读取中不会影响流畅性,当数据读取完毕以后程序也可以在第一时间做出相应的反应

这里多嘴说一句,大部分的游戏数据读取机制是直接在读取程序里面做个小循环,直到数据全部读取完毕才退出这个小循环


所以根据上面的流程,不难推断出为什么在5.15.0版的GDEMU上会出现这个bug了

因为从第1帧到第2帧期间,时间上只有一帧,在光盘上是不可能一帧读取完数据的,所以当程序循环判断的时候,数据未读取完毕,那么则会开始对游戏一些内存做初始化操作

但是在5.15.0版固件的GDEMU上就不一样了,因为当时的固件没有对数据读取做出一些速度限制,都是用最快的速度读取的,所以在它上面是可以出现1帧或者2帧把数据读取完毕的情况,所以后面对游戏一些内存做初始化操作的那些步骤就都被省略了,那么bug自然就出现了。

所以GDEMU的新固件针对这2个游戏专门做了限制,限制什么呢,当然是限制读取速度了,限制了读取速度,bug自然就解决了。

但是这个速度限制了也有个坏处,因为它限制的应该是全局的读取速度,那就是这个游戏的数据读取速度整体被降下来了,流畅性自然没有原来不限制速度的时候高了

因为我没有原版的GDEMU,所以针对上面这个结论也只是猜测,希望有原版升级到最新版固件的GDEMU朋友能配合做一个测试


因为我没有原版的GDEMU,克隆的固件又不能升级,要修复这个游戏我只能从游戏程序里面下手了

所以针对上面那个读取流程,我自己改写了一下程序,添加了一些指令进去,用来判断是否是触发bug的那几个数据

程序流程大致是这样的:

在第1帧程序开始按照参数从光盘读取数据到内存以后,对接下来的判断读取程序进行了扩充。


第N(N>1)帧:判断数据是否读取完毕,如果读取完毕,则跳到下面分支①,如果未读取完毕,则对游戏一些内存做初始化操作,然后返回,下一次继续来这里的循环点判断


分支①   数据读取完毕以后,判断是否是触发bug的那几个数据,如果不是,则退出数据读取判断,下次程序不会再来这里。如果是那几个触发bug的数据则跳到下面的分支②


分支②   从固定内存地址读取一个数值X(这个X的值最开始为
00,并且在每一帧的读取数据判断那里这个值都会递增+1)
判断X的值是否大于Y(Y为读取数据完毕以后需要的最少帧数值,只有大于等于这个值,内存才真正初始化完毕)

如果X值小于Y,返回,下一次继续来这里的循环点判断

如果X值大于等于Y则退出数据读取判断,下次程序不会再来这里(内存初始化完毕,可以正常继续进行下一步的程序)


这段程序的优点就是只针对那几个触发bug的数据才会有延迟操作,对读取其他的数据是不会照成影响的


缺点是需要在原版的镜像上面修改,对原版爱好者不太友好(当然如果你自己做成金手指格式也可以)





以上程序经过短时间的测试,结果是正常的


特此发上来,有需要的可以 自 行 选 择 附 件 下载测试


以上发言都只是个人看法,如果有不对或者不同意见或者不同方法能达成目的的也可以提出,欢迎讨论


最后附件放上已经修改好的日版 美版 欧版的1st主程序文件,会自己替换的可以替换进去


不会替换的也不要紧,在我们汉化组的官网也放上修改好的日版 美版 欧版GDI镜像,嫌自己替换麻烦的也可以去我们官网下载修改好的GDI文件地址是:

https://game.sgcn.games/web/list.html?ver=1.037&path=SGGG%u6C49%u5316%u7EC4%5CRE_Veronica_FIX_for_GDEMU_BY_YZB&scode=570961

这个游戏测试正常结束以后,我会继续放上永恒的阿卡迪亚的bug修正版本(虽然汉化版里面已经修复了那个bug,但是估计还有些人喜欢日版 美版吧)


最后的最后,如果你觉得本贴对你有帮助,欢迎对我们SGGG小组进行捐助,以便我们小
能够走得更远更久,用爱发电不知能维持多久。

地址为https://sgcn.games/QandA.html?v=4.14

[ 此帖被YZB在2022-04-24 21:39重新编辑 ]
描述:日版普通版
附件: JAP_T1207M_T1210M.rar (976 K) 下载次数:14
YZB
无广告位,看帖子签名
级别: 超级版主

UID: 12451
精华: 6
发帖: 19007
威望: 173 星
金钱: 5825 浮游币
贡献值: 9859 点
好评度: 54611 点
人气: 4322 点
在线时间: 18712(时)
注册时间: 2004-10-02
最后登录: 2024-04-24
沙发  发表于: 2022-03-06 00:18

引用
引用第6楼pitito于2022-03-05 17:58发表的  :


Nice job :)
People with a version of outdated GDemu, can correct their games.

.......


我不知道克隆的GDEMU是否有更新,不过我手上这块是不能更新了,所以只能修改游戏来修正bug了






引用
引用第5楼aliang于2022-03-05 17:00发表的 回 楼主(YZB) 的帖子 :
补充一下,从下载的编号来看,Y大修复了日版完全版和欧美版初版(因为欧美没有发行完全版),不知Y大能不能考虑也解决一下日版的初版和限定版?让DC上的这个维罗妮卡彻底圆满。感谢! 


初版和限定版还不一样????
我手上这个Biohazard -Code - Veronica- (Limited Edition) (JP) (Capcom) (2000) [T-1210M] [497-6219-35593-3]应该是初版吧?
限定版网上的完整游戏名是啥?
YZB
无广告位,看帖子签名
级别: 超级版主

UID: 12451
精华: 6
发帖: 19007
威望: 173 星
金钱: 5825 浮游币
贡献值: 9859 点
好评度: 54611 点
人气: 4322 点
在线时间: 18712(时)
注册时间: 2004-10-02
最后登录: 2024-04-24
板凳  发表于: 2022-03-06 21:38

Re:回 8楼(YZB) 的帖子

引用
引用第10楼aliang于2022-03-06 18:55发表的 回 8楼(YZB) 的帖子 :
初版有两个
一个是普通版:
Biohazard - Code Veronica(盘号:T-1207M)
还有一个是首发限定版:
Biohazard - Code Veronica Shokai Genteiban(盘号:T-1210M)
.......


看编号的确是首发限定版T-1210M,普通版我手上没有,如果你有的话可以传一个上来,我看看是不是一样的,到时候一起改

链接:https://pan.baidu.com/s/1_5bg3K3yYISDgj6kknn9bw?pwd=50v2 提取码:50v2
[ 此帖被YZB在2022-03-08 09:51重新编辑 ]
YZB
无广告位,看帖子签名
级别: 超级版主

UID: 12451
精华: 6
发帖: 19007
威望: 173 星
金钱: 5825 浮游币
贡献值: 9859 点
好评度: 54611 点
人气: 4322 点
在线时间: 18712(时)
注册时间: 2004-10-02
最后登录: 2024-04-24
地板  发表于: 2022-03-06 21:41

Re:回 楼主(YZB) 的帖子

引用
引用第11楼qilinan于2022-03-06 20:37发表的 回 楼主(YZB) 的帖子 :
看到你的介绍日版 美版 欧版的1st主程序文件,会自己替换的可以替换进去,请问替换游戏的主程序的软件是什么啊,可以提供一个吗?谢谢


https://github.com/DerekPascarella/UniversalDreamcastPatcher
这里就有一个,不过这个软件我还没试过,方法是把1st文件压缩成zip档案以后,直接运行exe,选择游戏文件夹,补丁文件,然后就可以打补丁上去
YZB
无广告位,看帖子签名
级别: 超级版主

UID: 12451
精华: 6
发帖: 19007
威望: 173 星
金钱: 5825 浮游币
贡献值: 9859 点
好评度: 54611 点
人气: 4322 点
在线时间: 18712(时)
注册时间: 2004-10-02
最后登录: 2024-04-24
草席  发表于: 2022-03-10 22:19

引用
引用第20楼筱蔚于2022-03-09 23:26发表的  :
买了高速通道流量也扣了下载速度也只有几十KB嘛   


大部分人的反馈速度都是很快的,估计和网络有关吧
YZB
无广告位,看帖子签名
级别: 超级版主

UID: 12451
精华: 6
发帖: 19007
威望: 173 星
金钱: 5825 浮游币
贡献值: 9859 点
好评度: 54611 点
人气: 4322 点
在线时间: 18712(时)
注册时间: 2004-10-02
最后登录: 2024-04-24
5楼  发表于: 2022-03-10 22:22

Re:回 13楼(YZB) 的帖子

引用
引用第16楼aliang于2022-03-07 10:08发表的 回 13楼(YZB) 的帖子 :
日版初版
链接:https://pan.baidu.com/s/1BMpOWjOyVNoiAi-DaiWWYA?pwd=CEMU

还想问下Y大,不知道有空时能不能做一篇CDI转回GDI的教程?因为早期很多DC的汉化游戏都是CDI版本,放到掌机和一些TF卡设备里用模拟器玩比较占空间,用GDI就可以很方便的压缩和还原。


日版和限定版,做好了
链接:https://pan.baidu.com/s/1_5bg3K3yYISDgj6kknn9bw?pwd=50v2 提取码:50v2  
这个版本就放百度网盘了,应该没什么人有兴趣,就不放网页那里了

以前的cdi游戏,我参与过的汉化游戏,因为出现过这种事,http://bbs.chinaemu.org/read-htm-tid-80698.html
所以后来大部分游戏都会做点小改动,防一下小人,转成GDI的话比较麻烦....
YZB
无广告位,看帖子签名
级别: 超级版主

UID: 12451
精华: 6
发帖: 19007
威望: 173 星
金钱: 5825 浮游币
贡献值: 9859 点
好评度: 54611 点
人气: 4322 点
在线时间: 18712(时)
注册时间: 2004-10-02
最后登录: 2024-04-24
6楼  发表于: 2022-03-10 22:35

引用
引用第21楼chono39于2022-03-10 19:25发表的  :
謝謝大大分享真是大福音的修正希望也能幫忙修正古墓丽影5的遊玩途中一定死機問題辛苦了


没听过这个游戏在gdemu上有问题,而且就算是有,wince游戏很难调试
YZB
无广告位,看帖子签名
级别: 超级版主

UID: 12451
精华: 6
发帖: 19007
威望: 173 星
金钱: 5825 浮游币
贡献值: 9859 点
好评度: 54611 点
人气: 4322 点
在线时间: 18712(时)
注册时间: 2004-10-02
最后登录: 2024-04-24
7楼  发表于: 2022-03-11 21:12

引用
引用第26楼gxb于2022-03-11 11:06发表的  :

我想知道是如何调试的,用什么模拟器?现在flycast模拟WINCE也很完善了,也是开源的,修改一个有DEBUG功能的版本来调试,应该也很方便吧


虽然nulldc和flycast是开源的dc模拟器,但是这么久了也没看见有流出过带中断调试功能的版本,我不会编译模拟器,估计想加个中断功能比较难吧
目前我是使用OllyICE+nulldc来配合使用,把模拟器当pc程序来调试,而且OllyICE中断模拟器停的地方都不是很准确,最后还得靠IDA反汇编整个主程序配合查看才勉勉强强.....
[ 此帖被YZB在2022-03-12 20:46重新编辑 ]
附件: 1ST_READ CODE VERONICA KAZENBAN_hack.rar (965 K) 下载次数:4
附件: 1zap.rar (317 K) 下载次数:2
附件: 2zap.rar (1904 K) 下载次数:1
YZB
无广告位,看帖子签名
级别: 超级版主

UID: 12451
精华: 6
发帖: 19007
威望: 173 星
金钱: 5825 浮游币
贡献值: 9859 点
好评度: 54611 点
人气: 4322 点
在线时间: 18712(时)
注册时间: 2004-10-02
最后登录: 2024-04-24
8楼  发表于: 2022-06-03 22:43

引用
引用第30楼木村浩一于2022-06-03 22:13发表的  :
大神是真厉害,不知道永恒阿卡迪亚片头的bug能不能也这样解决。当然我什么都不懂,只是片头的话也不影响游戏,只是心里一个怨念。如果给大神造成负担就算了

阿卡修复在先,这个反而是后面

认真看贴就能看见

20210914:发布一个V0.1的修正版
更新内容:
修正部分翻译错误的问题
修复盗版gdemu开头op卡死问题
完善未汉化的敌人名称
YZB
无广告位,看帖子签名
级别: 超级版主

UID: 12451
精华: 6
发帖: 19007
威望: 173 星
金钱: 5825 浮游币
贡献值: 9859 点
好评度: 54611 点
人气: 4322 点
在线时间: 18712(时)
注册时间: 2004-10-02
最后登录: 2024-04-24
9楼  发表于: 2022-06-12 23:00

把读取速度降低就正常了