-
- // check scsi drives
- FILEIO* fio = new FILEIO();
- for(int i = 0; i < MAX_SCSI; i++) {
- if(fio->Fopen(create_local_path(_T("SCSI%d.DAT"), i), FILEIO_READ_WRITE_BINARY)) {
- uint32_t file_size = fio->FileLength();
- if(file_size == 0) {
- // from ../scsi_hdd.cpp
- #define SCSI_BUFFER_SIZE 0x10000
- uint32_t remain = (file_size = 0x2800000); // 40MB
- void *tmp = calloc(1, SCSI_BUFFER_SIZE);
- while(remain > 0) {
- uint32_t length = min(remain, SCSI_BUFFER_SIZE);
- fio->Fwrite(tmp, length, 1);
- remain -= length;
- }
- free(tmp);
- #undef SCSI_BUFFER_SIZE
- }
- scsi_blocks[i] = file_size / BLOCK_SIZE;
- fio->Fclose();
- } else {
- scsi_blocks[i] = 0;
- }
- }
- delete fio;