Patch 2358908 by StrontiumDog with some changes.
This patch fix some more warnings. Most of them being warnings about unused fread/fwrite results. Instead of just discarding the result, the number of read/write is stored in the variable and can be use to know if there was a problem in the fread/fwrite calls. (also change the variable names to elems_ instead of bytes_ as the function returns the number of items not the number of bytes).
This commit is contained in:
parent
3316d1e0b4
commit
df1e0d6737
|
@ -606,6 +606,7 @@ int NDS_WriteBMP(const char *filename)
|
|||
FILE *file;
|
||||
int i,j;
|
||||
u16 * bmp = (u16 *)GPU_screen;
|
||||
size_t elems_written = 0;
|
||||
|
||||
memset(&fileheader, 0, sizeof(fileheader));
|
||||
fileheader.size = sizeof(fileheader);
|
||||
|
@ -624,8 +625,8 @@ int NDS_WriteBMP(const char *filename)
|
|||
if ((file = fopen(filename,"wb")) == NULL)
|
||||
return 0;
|
||||
|
||||
fwrite(&fileheader, 1, sizeof(fileheader), file);
|
||||
fwrite(&imageheader, 1, sizeof(imageheader), file);
|
||||
elems_written += fwrite(&fileheader, 1, sizeof(fileheader), file);
|
||||
elems_written += fwrite(&imageheader, 1, sizeof(imageheader), file);
|
||||
|
||||
for(j=0;j<192*2;j++)
|
||||
{
|
||||
|
@ -641,9 +642,9 @@ int NDS_WriteBMP(const char *filename)
|
|||
r*=255/31;
|
||||
g*=255/31;
|
||||
b*=255/31;
|
||||
fwrite(&r, 1, sizeof(u8), file);
|
||||
fwrite(&g, 1, sizeof(u8), file);
|
||||
fwrite(&b, 1, sizeof(u8), file);
|
||||
elems_written += fwrite(&r, 1, sizeof(u8), file);
|
||||
elems_written += fwrite(&g, 1, sizeof(u8), file);
|
||||
elems_written += fwrite(&b, 1, sizeof(u8), file);
|
||||
}
|
||||
}
|
||||
fclose(file);
|
||||
|
@ -653,10 +654,10 @@ int NDS_WriteBMP(const char *filename)
|
|||
|
||||
int NDS_WriteBMP_32bppBuffer(int width, int height, const void* buf, const char *filename)
|
||||
{
|
||||
bmpfileheader_struct fileheader;
|
||||
bmpfileheader_struct fileheader;
|
||||
bmpimgheader_struct imageheader;
|
||||
FILE *file;
|
||||
|
||||
size_t elems_written = 0;
|
||||
memset(&fileheader, 0, sizeof(fileheader));
|
||||
fileheader.size = sizeof(fileheader);
|
||||
fileheader.id = 'B' | ('M' << 8);
|
||||
|
@ -674,10 +675,10 @@ int NDS_WriteBMP_32bppBuffer(int width, int height, const void* buf, const char
|
|||
if ((file = fopen(filename,"wb")) == NULL)
|
||||
return 0;
|
||||
|
||||
fwrite(&fileheader, 1, sizeof(fileheader), file);
|
||||
fwrite(&imageheader, 1, sizeof(imageheader), file);
|
||||
elems_written += fwrite(&fileheader, 1, sizeof(fileheader), file);
|
||||
elems_written += fwrite(&imageheader, 1, sizeof(imageheader), file);
|
||||
|
||||
fwrite(buf,1,imageheader.imgsize,file);
|
||||
elems_written += fwrite(buf,1,imageheader.imgsize,file);
|
||||
fclose(file);
|
||||
|
||||
return 1;
|
||||
|
|
|
@ -961,7 +961,7 @@ static void Render()
|
|||
//TODO - properly doublebuffer the display lists
|
||||
{
|
||||
|
||||
u32 lastTextureFormat, lastTexturePalette, lastPolyAttr;
|
||||
u32 lastTextureFormat = 0, lastTexturePalette = 0, lastPolyAttr = 0;
|
||||
|
||||
for(int i=0;i<gfx3d.polylist->count;i++) {
|
||||
POLY *poly = &gfx3d.polylist->list[gfx3d.indexlist[i]];
|
||||
|
|
|
@ -1216,6 +1216,7 @@ int SNDFileInit(int buffersize)
|
|||
waveheader_struct waveheader;
|
||||
fmt_struct fmt;
|
||||
chunk_struct data;
|
||||
size_t elems_written = 0;
|
||||
|
||||
if ((spufp = fopen("ndsaudio.wav", "wb")) == NULL)
|
||||
return -1;
|
||||
|
@ -1224,7 +1225,7 @@ int SNDFileInit(int buffersize)
|
|||
memcpy(waveheader.riff.id, "RIFF", 4);
|
||||
waveheader.riff.size = 0; // we'll fix this after the file is closed
|
||||
memcpy(waveheader.rifftype, "WAVE", 4);
|
||||
fwrite((void *)&waveheader, 1, sizeof(waveheader_struct), spufp);
|
||||
elems_written += fwrite((void *)&waveheader, 1, sizeof(waveheader_struct), spufp);
|
||||
|
||||
// fmt chunk
|
||||
memcpy(fmt.chunk.id, "fmt ", 4);
|
||||
|
@ -1235,12 +1236,12 @@ int SNDFileInit(int buffersize)
|
|||
fmt.bitspersample = 16;
|
||||
fmt.blockalign = fmt.bitspersample / 8 * fmt.numchan;
|
||||
fmt.bytespersec = fmt.rate * fmt.blockalign;
|
||||
fwrite((void *)&fmt, 1, sizeof(fmt_struct), spufp);
|
||||
elems_written += fwrite((void *)&fmt, 1, sizeof(fmt_struct), spufp);
|
||||
|
||||
// data chunk
|
||||
memcpy(data.id, "data", 4);
|
||||
data.size = 0; // we'll fix this at the end
|
||||
fwrite((void *)&data, 1, sizeof(chunk_struct), spufp);
|
||||
elems_written += fwrite((void *)&data, 1, sizeof(chunk_struct), spufp);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1249,6 +1250,7 @@ int SNDFileInit(int buffersize)
|
|||
|
||||
void SNDFileDeInit()
|
||||
{
|
||||
size_t elems_written;
|
||||
if (spufp)
|
||||
{
|
||||
long length = ftell(spufp);
|
||||
|
@ -1256,11 +1258,11 @@ void SNDFileDeInit()
|
|||
// Let's fix the riff chunk size and the data chunk size
|
||||
fseek(spufp, sizeof(waveheader_struct)-0x8, SEEK_SET);
|
||||
length -= 0x4;
|
||||
fwrite((void *)&length, 1, 4, spufp);
|
||||
elems_written += fwrite((void *)&length, 1, 4, spufp);
|
||||
|
||||
fseek(spufp, sizeof(waveheader_struct)+sizeof(fmt_struct)+0x4, SEEK_SET);
|
||||
length -= sizeof(waveheader_struct)+sizeof(fmt_struct);
|
||||
fwrite((void *)&length, 1, 4, spufp);
|
||||
elems_written += fwrite((void *)&length, 1, 4, spufp);
|
||||
fclose(spufp);
|
||||
}
|
||||
}
|
||||
|
@ -1269,8 +1271,9 @@ void SNDFileDeInit()
|
|||
|
||||
void SNDFileUpdateAudio(s16 *buffer, u32 num_samples)
|
||||
{
|
||||
size_t elems_written;
|
||||
if (spufp)
|
||||
fwrite((void *)buffer, num_samples*2, 2, spufp);
|
||||
elems_written = fwrite((void *)buffer, num_samples*2, 2, spufp);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -6687,7 +6687,7 @@ TEMPLATE static u32 FASTCALL OP_LDMDB_W()
|
|||
TEMPLATE static u32 FASTCALL OP_LDMIA2()
|
||||
{
|
||||
u32 i = cpu->instruction;
|
||||
u32 oldmode;
|
||||
u32 oldmode = 0;
|
||||
|
||||
u32 c = 0;
|
||||
|
||||
|
@ -6744,7 +6744,7 @@ TEMPLATE static u32 FASTCALL OP_LDMIA2()
|
|||
TEMPLATE static u32 FASTCALL OP_LDMIB2()
|
||||
{
|
||||
u32 i = cpu->instruction;
|
||||
u32 oldmode;
|
||||
u32 oldmode = 0;
|
||||
u32 c = 0;
|
||||
|
||||
u32 start = cpu->R[REG_POS(i,16)];
|
||||
|
@ -6803,7 +6803,7 @@ TEMPLATE static u32 FASTCALL OP_LDMDA2()
|
|||
{
|
||||
u32 i = cpu->instruction;
|
||||
|
||||
u32 oldmode;
|
||||
u32 oldmode = 0;
|
||||
u32 c = 0;
|
||||
u32 * registres;
|
||||
u32 * waitState;
|
||||
|
@ -6866,7 +6866,7 @@ TEMPLATE static u32 FASTCALL OP_LDMDB2()
|
|||
{
|
||||
u32 i = cpu->instruction;
|
||||
|
||||
u32 oldmode;
|
||||
u32 oldmode = 0;
|
||||
u32 c = 0;
|
||||
u32 * registres;
|
||||
u32 * waitState;
|
||||
|
@ -6928,7 +6928,7 @@ TEMPLATE static u32 FASTCALL OP_LDMIA2_W()
|
|||
u32 i = cpu->instruction;
|
||||
u32 c = 0;
|
||||
|
||||
u32 oldmode;
|
||||
u32 oldmode = 0;
|
||||
u32 start = cpu->R[REG_POS(i,16)];
|
||||
u32 * registres;
|
||||
u32 * waitState;
|
||||
|
@ -6985,7 +6985,7 @@ TEMPLATE static u32 FASTCALL OP_LDMIB2_W()
|
|||
u32 i = cpu->instruction;
|
||||
u32 c = 0;
|
||||
|
||||
u32 oldmode;
|
||||
u32 oldmode = 0;
|
||||
u32 start = cpu->R[REG_POS(i,16)];
|
||||
u32 * registres;
|
||||
u32 * waitState;
|
||||
|
@ -7044,7 +7044,7 @@ TEMPLATE static u32 FASTCALL OP_LDMDA2_W()
|
|||
u32 i = cpu->instruction;
|
||||
u32 c = 0;
|
||||
|
||||
u32 oldmode;
|
||||
u32 oldmode = 0;
|
||||
u32 start = cpu->R[REG_POS(i,16)];
|
||||
u32 * registres;
|
||||
u32 * waitState;
|
||||
|
@ -7104,7 +7104,7 @@ TEMPLATE static u32 FASTCALL OP_LDMDB2_W()
|
|||
u32 i = cpu->instruction;
|
||||
u32 c = 0;
|
||||
|
||||
u32 oldmode;
|
||||
u32 oldmode = 0;
|
||||
u32 start = cpu->R[REG_POS(i,16)];
|
||||
u32 * registres;
|
||||
u32 * waitState;
|
||||
|
|
|
@ -589,6 +589,7 @@ static void resolve_path(int dirent) {
|
|||
/* Read from a file using a 512 byte buffer */
|
||||
static u16 fread_buffered(int dirent,u32 cluster,u32 offset) {
|
||||
char fname[2*NAME_LEN+EXT_LEN];
|
||||
size_t elems_read = 0;
|
||||
|
||||
offset += cluster*512*SECPERCLUS;
|
||||
|
||||
|
@ -601,7 +602,7 @@ static u16 fread_buffered(int dirent,u32 cluster,u32 offset) {
|
|||
return 0;
|
||||
}
|
||||
fseek(hFile, offset, SEEK_SET);
|
||||
fread(&freadBuffer, 1, 512, hFile);
|
||||
elems_read += fread(&freadBuffer, 1, 512, hFile);
|
||||
bufferStart = offset;
|
||||
}
|
||||
|
||||
|
@ -622,7 +623,7 @@ static u16 fread_buffered(int dirent,u32 cluster,u32 offset) {
|
|||
if (!hFile) return 0;
|
||||
bufferStart = offset;
|
||||
fseek(hFile, offset, SEEK_SET);
|
||||
fread(&freadBuffer, 1, 512, hFile);
|
||||
elems_read += fread(&freadBuffer, 1, 512, hFile);
|
||||
|
||||
bufferStart = offset;
|
||||
activeDirEnt = dirent;
|
||||
|
@ -635,6 +636,7 @@ static u16 fread_buffered(int dirent,u32 cluster,u32 offset) {
|
|||
unsigned int
|
||||
cflash_read(unsigned int address) {
|
||||
unsigned int ret_value = 0;
|
||||
size_t elems_read;
|
||||
#if 0 /* used by next if 0 block */
|
||||
#define BUFFERED_BLOCK_SIZE 512
|
||||
static u8 block_buffer[BUFFERED_BLOCK_SIZE];
|
||||
|
@ -677,7 +679,7 @@ cflash_read(unsigned int address) {
|
|||
data[1] = block_buffer[currLBA + 1 - buffered_start_index];
|
||||
#else
|
||||
LSEEK_FN( disk_image, currLBA, SEEK_SET);
|
||||
READ_FN( disk_image, data, 2);
|
||||
elems_read += READ_FN( disk_image, data, 2);
|
||||
#endif
|
||||
ret_value = data[1] << 8 |
|
||||
data[0];
|
||||
|
@ -697,13 +699,13 @@ cflash_read(unsigned int address) {
|
|||
ret_value = T1ReadWord(p, currLBA);
|
||||
|
||||
// Reading the FAT
|
||||
} else if ((currLBA >= filesysFAT*512) && (currLBA < filesysRootDir*512)) {
|
||||
} else if (((u32)currLBA >= filesysFAT*512) && ((u32)currLBA < filesysRootDir*512)) {
|
||||
p = (unsigned char*)&FAT16[0];
|
||||
ret_value = T1ReadWord(p, currLBA - filesysFAT * 512);
|
||||
|
||||
// Reading directory entries
|
||||
} else if ((currLBA >= filesysRootDir*512) &&
|
||||
(cluster <= lastDirEntCluster)) {
|
||||
} else if (((u32)currLBA >= filesysRootDir*512) &&
|
||||
(cluster <= (u32)lastDirEntCluster)) {
|
||||
cluster3 = ((currLBA - (SECRESV * 512)) / (512 * SECPERCLUS));
|
||||
i = (currLBA-(((cluster3-(filesysRootDir/SECPERCLUS))*SECPERCLUS+filesysRootDir)*512)); //(currLBA - cluster*BYTESPERCLUS);
|
||||
if (i < (dirEntriesInCluster[cluster3]*32)) {
|
||||
|
@ -723,7 +725,7 @@ cflash_read(unsigned int address) {
|
|||
}
|
||||
}
|
||||
// Reading file data
|
||||
} else if ((cluster2 > lastDirEntCluster) && (cluster2 <= lastFileDataCluster)) { //else if ((cluster>lastDirEntCluster)&&(cluster<=lastFileDataCluster)) {
|
||||
} else if ((cluster2 > (u32)lastDirEntCluster) && (cluster2 <= (u32)lastFileDataCluster)) { //else if ((cluster>lastDirEntCluster)&&(cluster<=lastFileDataCluster)) {
|
||||
fileLBA = currLBA - (filesysData-32)*512; // 32 = # sectors used for the root entries
|
||||
|
||||
// Check if the read is from the currently opened file
|
||||
|
@ -732,7 +734,7 @@ cflash_read(unsigned int address) {
|
|||
ret_value = fread_buffered(activeDirEnt,cluster-dirEntries[activeDirEnt].startCluster,(fileLBA-fileStartLBA)&(BYTESPERCLUS-1));
|
||||
} else {
|
||||
for (i=0; i<numFiles; i++) {
|
||||
if ((fileLBA>=(dirEntries[i].startCluster*512*SECPERCLUS)) &&
|
||||
if ((fileLBA>=(u32)(dirEntries[i].startCluster*512*SECPERCLUS)) &&
|
||||
(fileLBA <(dirEntries[i].startCluster*512*SECPERCLUS)+dirEntries[i].fileSize) &&
|
||||
((dirEntries[i].attrib & (ATTRIB_DIR|ATTRIB_LFN))==0)) {
|
||||
cluster = (fileLBA / (512 * SECPERCLUS));
|
||||
|
|
|
@ -47,6 +47,8 @@ typedef struct
|
|||
int WriteBMP(const char *filename,u16 *bmp){
|
||||
BmpFileHeader fileheader;
|
||||
BmpImageHeader imageheader;
|
||||
size_t elems_written = 0;
|
||||
|
||||
fileheader.size = 14;
|
||||
fileheader.type = 0x4D42;
|
||||
fileheader.r1 = 0;
|
||||
|
@ -68,25 +70,23 @@ int WriteBMP(const char *filename,u16 *bmp){
|
|||
FILE *fichier = fopen(filename,"wb");
|
||||
if (!fichier)
|
||||
return 0;
|
||||
//fwrite(&fileheader, 1, 14, fichier);
|
||||
|
||||
//fwrite(&imageheader, 1, 40, fichier);
|
||||
fwrite( &fileheader.type, sizeof(fileheader.type), 1, fichier);
|
||||
fwrite( &fileheader.size, sizeof(fileheader.size), 1, fichier);
|
||||
fwrite( &fileheader.r1, sizeof(fileheader.r1), 1, fichier);
|
||||
fwrite( &fileheader.r2, sizeof(fileheader.r2), 1, fichier);
|
||||
fwrite( &fileheader.data_offset, sizeof(fileheader.data_offset), 1, fichier);
|
||||
fwrite( &imageheader.header_size, sizeof(imageheader.header_size), 1, fichier);
|
||||
fwrite( &imageheader.width, sizeof(imageheader.width), 1, fichier);
|
||||
fwrite( &imageheader.height, sizeof(imageheader.height), 1, fichier);
|
||||
fwrite( &imageheader.r1, sizeof(imageheader.r1), 1, fichier);
|
||||
fwrite( &imageheader.depth, sizeof(imageheader.depth), 1, fichier);
|
||||
fwrite( &imageheader.r2, sizeof(imageheader.r2), 1, fichier);
|
||||
fwrite( &imageheader.size, sizeof(imageheader.size), 1, fichier);
|
||||
fwrite( &imageheader.r3, sizeof(imageheader.r3), 1, fichier);
|
||||
fwrite( &imageheader.r4, sizeof(imageheader.r4), 1, fichier);
|
||||
fwrite( &imageheader.r5, sizeof(imageheader.r5), 1, fichier);
|
||||
fwrite( &imageheader.r6, sizeof(imageheader.r6), 1, fichier);
|
||||
elems_written += fwrite( &fileheader.type, sizeof(fileheader.type), 1, fichier);
|
||||
elems_written += fwrite( &fileheader.size, sizeof(fileheader.size), 1, fichier);
|
||||
elems_written += fwrite( &fileheader.r1, sizeof(fileheader.r1), 1, fichier);
|
||||
elems_written += fwrite( &fileheader.r2, sizeof(fileheader.r2), 1, fichier);
|
||||
elems_written += fwrite( &fileheader.data_offset, sizeof(fileheader.data_offset), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.header_size, sizeof(imageheader.header_size), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.width, sizeof(imageheader.width), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.height, sizeof(imageheader.height), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.r1, sizeof(imageheader.r1), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.depth, sizeof(imageheader.depth), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.r2, sizeof(imageheader.r2), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.size, sizeof(imageheader.size), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.r3, sizeof(imageheader.r3), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.r4, sizeof(imageheader.r4), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.r5, sizeof(imageheader.r5), 1, fichier);
|
||||
elems_written += fwrite( &imageheader.r6, sizeof(imageheader.r6), 1, fichier);
|
||||
int i,j;
|
||||
for(j=0;j<192*2;j++)for(i=0;i<256;i++){
|
||||
u8 r,g,b;
|
||||
|
@ -99,9 +99,9 @@ int WriteBMP(const char *filename,u16 *bmp){
|
|||
r*=255/31;
|
||||
g*=255/31;
|
||||
b*=255/31;
|
||||
fwrite(&r, 1, sizeof(char), fichier);
|
||||
fwrite(&g, 1, sizeof(char), fichier);
|
||||
fwrite(&b, 1, sizeof(char), fichier);
|
||||
elems_written += fwrite(&r, 1, sizeof(char), fichier);
|
||||
elems_written += fwrite(&g, 1, sizeof(char), fichier);
|
||||
elems_written += fwrite(&b, 1, sizeof(char), fichier);
|
||||
}
|
||||
fclose(fichier);
|
||||
return 1;
|
||||
|
|
|
@ -98,6 +98,8 @@ void mc_free(memory_chip_t *mc)
|
|||
|
||||
void mc_reset_com(memory_chip_t *mc)
|
||||
{
|
||||
size_t elems_written = 0;
|
||||
|
||||
if (mc->type == MC_TYPE_AUTODETECT && mc->com == BM_CMD_AUTODETECT)
|
||||
{
|
||||
u32 addr, size;
|
||||
|
@ -175,14 +177,14 @@ void mc_reset_com(memory_chip_t *mc)
|
|||
|
||||
// Generate file
|
||||
if ((mc->fp = fopen(mc->filename, "wb+")) != NULL)
|
||||
fwrite((void *)mc->data, 1, mc->size, mc->fp);
|
||||
elems_written += fwrite((void *)mc->data, 1, mc->size, mc->fp);
|
||||
}
|
||||
else if (mc->com == BM_CMD_WRITELOW)
|
||||
{
|
||||
if (mc->fp)
|
||||
{
|
||||
fseek(mc->fp, 0, SEEK_SET);
|
||||
fwrite((void *)mc->data, 1, mc->size, mc->fp); // fix me
|
||||
elems_written += fwrite((void *)mc->data, 1, mc->size, mc->fp); // fix me
|
||||
}
|
||||
mc->write_enable = FALSE;
|
||||
}
|
||||
|
@ -202,6 +204,8 @@ void mc_load_file(memory_chip_t *mc, const char* filename)
|
|||
long size;
|
||||
int type = -1;
|
||||
FILE* file = fopen(filename, "rb+");
|
||||
size_t elems_read;
|
||||
|
||||
if(file == NULL)
|
||||
{
|
||||
mc->filename = strdup(filename);
|
||||
|
@ -231,9 +235,9 @@ void mc_load_file(memory_chip_t *mc, const char* filename)
|
|||
mc_realloc(mc, type, size);
|
||||
}
|
||||
|
||||
if (size > mc->size)
|
||||
if ((u32)size > mc->size)
|
||||
size = mc->size;
|
||||
fread (mc->data, 1, size, file);
|
||||
elems_read = fread (mc->data, 1, size, file);
|
||||
mc->fp = file;
|
||||
}
|
||||
|
||||
|
@ -243,6 +247,7 @@ int mc_load_duc(memory_chip_t *mc, const char* filename)
|
|||
int type = -1;
|
||||
char id[16];
|
||||
FILE* file = fopen(filename, "rb");
|
||||
size_t elems_read = 0;
|
||||
if(file == NULL)
|
||||
return 0;
|
||||
|
||||
|
@ -251,7 +256,7 @@ int mc_load_duc(memory_chip_t *mc, const char* filename)
|
|||
fseek(file, 0, SEEK_SET);
|
||||
|
||||
// Make sure we really have the right file
|
||||
fread((void *)id, sizeof(char), 16, file);
|
||||
elems_read += fread((void *)id, sizeof(char), 16, file);
|
||||
|
||||
if (memcmp(id, "ARDS000000000001", 16) != 0)
|
||||
{
|
||||
|
@ -279,11 +284,11 @@ int mc_load_duc(memory_chip_t *mc, const char* filename)
|
|||
mc_realloc(mc, type, size);
|
||||
}
|
||||
|
||||
if (size > mc->size)
|
||||
if ((u32)size > mc->size)
|
||||
size = mc->size;
|
||||
// Skip the rest of the header since we don't need it
|
||||
fseek(file, 500, SEEK_SET);
|
||||
fread (mc->data, 1, size, file);
|
||||
elems_read += fread (mc->data, 1, size, file);
|
||||
fclose(file);
|
||||
|
||||
return 1;
|
||||
|
|
|
@ -349,7 +349,7 @@ static bool cp15_loadone(armcp15_t *cp15, std::istream* is)
|
|||
for(int i=0;i<8;i++) if(!read32le(&cp15->regionExecuteSet_USR[i],is)) return false;
|
||||
for(int i=0;i<8;i++) if(!read32le(&cp15->regionExecuteSet_SYS[i],is)) return false;
|
||||
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool cp15_loadstate(std::istream* is)
|
||||
|
@ -454,12 +454,13 @@ void sram_write (u32 address, u8 value) {
|
|||
int sram_load (const char *file_name) {
|
||||
|
||||
FILE *file;
|
||||
size_t elems_read;
|
||||
|
||||
file = fopen ( file_name, "rb" );
|
||||
if( file == NULL )
|
||||
return 0;
|
||||
|
||||
fread ( MMU.CART_RAM, SRAM_SIZE, 1, file );
|
||||
elems_read = fread ( MMU.CART_RAM, SRAM_SIZE, 1, file );
|
||||
|
||||
fclose ( file );
|
||||
|
||||
|
@ -470,12 +471,13 @@ int sram_load (const char *file_name) {
|
|||
int sram_save (const char *file_name) {
|
||||
|
||||
FILE *file;
|
||||
size_t elems_written;
|
||||
|
||||
file = fopen ( file_name, "wb" );
|
||||
if( file == NULL )
|
||||
return 0;
|
||||
|
||||
fwrite ( MMU.CART_RAM, SRAM_SIZE, 1, file );
|
||||
elems_written = fwrite ( MMU.CART_RAM, SRAM_SIZE, 1, file );
|
||||
|
||||
fclose ( file );
|
||||
|
||||
|
@ -687,6 +689,7 @@ static bool savestate_save(std::ostream* outstream, int compressionLevel)
|
|||
bool savestate_save (const char *file_name)
|
||||
{
|
||||
memorystream ms;
|
||||
size_t elems_written;
|
||||
#ifdef HAVE_LIBZ
|
||||
if(!savestate_save(&ms, Z_DEFAULT_COMPRESSION))
|
||||
#else
|
||||
|
@ -697,9 +700,9 @@ bool savestate_save (const char *file_name)
|
|||
FILE* file = fopen(file_name,"wb");
|
||||
if(file)
|
||||
{
|
||||
fwrite(ms.buf(),1,ms.size(),file);
|
||||
elems_written = fwrite(ms.buf(),1,ms.size(),file);
|
||||
fclose(file);
|
||||
return true;
|
||||
return (elems_written == ms.size());
|
||||
} else return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue