#include "FileIO.h" // Implementation for FileIO void *LoadFile(char *filename) { int FileHandle; int size; void *result; int read; FileHandle=MWopen((char *)filename,FREAD); // File read from PC size=MWlseek(FileHandle,0,SEEK_END); // get length MWlseek(FileHandle,0,SEEK_SET); result=(void *)malloc(size); // reserve memory read=MWread(FileHandle,result,size); // load file MWclose(FileHandle); return result; } void *LoadCDFile(char *filename) { CdlFILE fileInfo; int j; int msize; unsigned char result[16]; void *p; for (j = 0; j<10; j++) { if (CdSearchFile(&fileInfo, filename) != 0) break; } if (j==11) { return 0; } // We need to malloc more than just the file size because // Sony reads in only full-sized CD-ROM sectors, of size 2048. msize = (fileInfo.size+2048) & (~2048); p = (void *)malloc(msize); CdReadFile(filename, p, fileInfo.size); CdReadSync(0, result); if (result[0] < 0) { free(p); return 0; } return p; } int LoadDefaultWaveTables() { unsigned char *vbdata, *vhdata; int vab; vbdata = (unsigned char *)LoadCDFile("\\DATA\\SOUND\\STD0.VB;1"); vhdata = (unsigned char *)LoadCDFile("\\DATA\\SOUND\\STD0.VH;1"); vab = SsVabTransfer(vhdata, vbdata, -1, 1); free(vbdata); return vab; }