This commit is contained in:
parent
f8194ab3b1
commit
e9f123dec7
8 changed files with 749 additions and 0 deletions
53
source/fileio/cdfile.cpp
Normal file
53
source/fileio/cdfile.cpp
Normal file
|
@ -0,0 +1,53 @@
|
|||
/***********************************/
|
||||
/*** PSX CD BigLump FileIO Stuff ***/
|
||||
/***********************************/
|
||||
|
||||
#include "system\global.h"
|
||||
#include "fileio\fileio.h"
|
||||
#include "fileio\cdfile.h"
|
||||
#include <libcd.h>
|
||||
#include "system\vid.h"
|
||||
#include "sound\cdxa.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
CCDFileIO::CCDFileIO(u32 FilePos,sBigLump *BigLumpPtr)
|
||||
{
|
||||
DbgMsg0("CD FILE SYSTEM\n");
|
||||
while (!CdInit());
|
||||
|
||||
#if !defined(__USER_CDBUILD__)
|
||||
CFileIO::FindAllFilePos();
|
||||
#endif
|
||||
BigLump=BigLumpPtr;
|
||||
FileStart=CFileIO::GetFilePos(FILEPOS_BIGLUMP);
|
||||
CXAStream::SetSector(CFileIO::GetFilePos(FILEPOS_TRACK1));
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CCDFileIO::Open()
|
||||
{
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CCDFileIO::Read(u32 Count,void *Dst)
|
||||
{
|
||||
u8 Com=CdlModeSpeed;
|
||||
int Error=0;
|
||||
// seek
|
||||
|
||||
while (!Error)
|
||||
{
|
||||
CdIntToPos(BigLump->Sector+FileStart,&CdPos);
|
||||
CdControlB(CdlSetloc, (u8*)&CdPos, 0); // Set CD Pos
|
||||
CdControlB(CdlSetmode, &Com, 0);
|
||||
Error=CdRead(Count, (u32*)Dst, CdlModeSpeed);
|
||||
}
|
||||
while (CdReadSync(1,0) > 0);
|
||||
BigLump->Sector+=Count;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
void CCDFileIO::Close()
|
||||
{
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue