Basic hook-up of CD block command 0x64, pending actual transfer code ...

This commit is contained in:
Angelo Salese 2013-02-15 19:07:42 +00:00
parent 93160e3057
commit 21884c4f62
2 changed files with 18 additions and 6 deletions

View File

@ -252,6 +252,7 @@ void saturn_state::cd_exec_command( void )
switch (xfertype32) switch (xfertype32)
{ {
case XFERTYPE32_GETSECTOR: case XFERTYPE32_GETSECTOR:
case XFERTYPE32_PUTSECTOR:
hirqreg |= EHST; hirqreg |= EHST;
break; break;
@ -1037,15 +1038,23 @@ void saturn_state::cd_exec_command( void )
case 0x64: // put sector data case 0x64: // put sector data
/* TODO: After Burner 2, Out Run, Fantasy Zone and Dungeon Master Nexus trips this */ /* TODO: After Burner 2, Out Run, Fantasy Zone and Dungeon Master Nexus trips this */
// ...
{ {
//UINT8 sectnum = cr4 & 0xff; UINT8 sectnum = cr4 & 0xff;
//UINT8 filtnum = cr3>>8; UINT8 bufnum = cr3>>8;
xfertype32 = XFERTYPE32_PUTSECTOR;
cd_stat |= CD_STAT_TRANS;
xferoffs = 0;
xfersect = 0;
xferdnum = 0;
xfersectpos = 0;
xfersectnum = sectnum;
transpart = &partitions[bufnum];
} }
hirqreg |= (CMOK|EHST); hirqreg |= (CMOK|ECPY|DRDY);
cr_standard_return(cd_stat); cr_standard_return(cd_stat);
break; break;
@ -1816,7 +1825,8 @@ WRITE32_MEMBER( saturn_state::stvcd_w )
break; break;
default: default:
CDROM_LOG(("Unknown CD write %x @ %x\n", data, offset)) printf("Unknown CD write %x @ %x\n", data, offset);
//xferdnum = 0x8c00;
break; break;
} }
} }

View File

@ -611,7 +611,9 @@ public:
{ {
XFERTYPE32_INVALID, XFERTYPE32_INVALID,
XFERTYPE32_GETSECTOR, XFERTYPE32_GETSECTOR,
XFERTYPE32_GETDELETESECTOR XFERTYPE32_GETDELETESECTOR,
XFERTYPE32_PUTSECTOR,
XFERTYPE32_MOVESECTOR
}; };