- 精华
- 0
- 帖子
- 679
- 威望
- 0 点
- 积分
- 721 点
- 种子
- 12 点
- 注册时间
- 2007-1-8
- 最后登录
- 2025-2-4
|
发表于 2011-1-7 17:00 · 辽宁
|
显示全部楼层
本帖最后由 tq03q9i 于 2011-1-7 17:05 编辑
而且我在patch.c中找到这个代码:
static int delayed_cdRead(u32 lsn, u32 nsectors, void *buf, int *mode)
{
register int r;
register u32 count;
r = cdRead(lsn, nsectors, buf, mode);
count = g_delay_cycles;
while(count--)
asm("nop\nnop\nnop\nnop");
return r;
}
static void generic_delayed_cdRead_patches(u32 patch_addr, u32 delay_cycles)
{
// set configureable delay cycles
g_delay_cycles = delay_cycles;
// get original cdRead() pointer cdRead = (void *)FNADDR(_lw(patch_addr));
// overwrite with a JAL to our delayed_cdRead function
_sw(JAL((u32)delayed_cdRead), patch_addr);
————————————————————————
作用应该是slow down cd/dvd的,可能就是解决问题的钥匙(注意红字),毛利小五郎应该懂一点汇编,有办法把它正确应用到机战impact中,然后编译出版本,试验效果吗? |
|