init_cdblock增加HIRQ_EHST返回值。

移除为InTheHunt做的hack代码。
This commit is contained in:
tpu 2024-03-11 17:02:28 +08:00
parent b50e7088ba
commit b403a6804a

View file

@ -584,7 +584,7 @@ int init_cdblock(void)
HIRQ_CLR = HIRQ_PEND | HIRQ_DRDY | HIRQ_BFUL;
set_report(cdb.status);
return HIRQ_ESEL;
return HIRQ_ESEL|HIRQ_EHST;
}
@ -1104,8 +1104,6 @@ void free_partition(PARTITION *pt)
}
// 有些游戏(InTheHunt)利用reset_filter来删除扇区。这里需要hack一下。
static int gs_spos, gs_snum=0;
// 0x48 [SR]
int reset_filter(void)
@ -1127,13 +1125,7 @@ int reset_filter(void)
}
if(mode==0){
if(gs_snum){
// 只删除get_sector_data用到的block。
while(gs_snum){
remove_block(&cdb.part[fid], gs_spos);
gs_snum -= 1;
}
}else if(fid<MAX_SELECTORS){
if(fid<MAX_SELECTORS){
free_partition(&cdb.part[fid]);
}
}else{
@ -1166,7 +1158,6 @@ int reset_filter(void)
}
}
}
gs_snum = 0;
return HIRQ_ESEL;
}
@ -1329,8 +1320,6 @@ int get_sector_data(void)
set_status(STAT_WAIT | cdb.status);
return 0;
}
gs_spos = spos;
gs_snum = snum;
cdb.trans_type = TRANS_DATA;
cdb.trans_part_index = pt;
@ -1349,8 +1338,6 @@ int del_sector_data(void)
int pt, spos, snum;
PARTITION *pp;
gs_snum = 0;
pt = cdb.cr3>>8;
spos = cdb.cr2;
snum = cdb.cr4;
@ -1384,8 +1371,6 @@ int get_del_sector_data(void)
int pt, spos, snum;
PARTITION *pp;
gs_snum = 0;
if(cdb.trans_type){
set_status(STAT_WAIT | cdb.status);
return 0;