some missing error handling
[pcsx_rearmed.git] / libpcsxcore / sio.c
index 4e26907..44957d3 100644 (file)
@@ -72,12 +72,10 @@ char Mcd1Data[MCD_SIZE], Mcd2Data[MCD_SIZE];
 char McdDisable[2];
 
 #define SIO_INT(eCycle) { \
-       if (!Config.Sio) { \
-               psxRegs.interrupt |= (1 << PSXINT_SIO); \
-               psxRegs.intCycle[PSXINT_SIO].cycle = eCycle; \
-               psxRegs.intCycle[PSXINT_SIO].sCycle = psxRegs.cycle; \
-               new_dyna_set_event(PSXINT_SIO, eCycle); \
-       } \
+       psxRegs.interrupt |= (1 << PSXINT_SIO); \
+       psxRegs.intCycle[PSXINT_SIO].cycle = eCycle; \
+       psxRegs.intCycle[PSXINT_SIO].sCycle = psxRegs.cycle; \
+       new_dyna_set_event(PSXINT_SIO, eCycle); \
 }
 
 // clk cycle byte
@@ -454,7 +452,12 @@ void LoadMcd(int mcd, char *str) {
                                else if(buf.st_size == MCD_SIZE + 3904)
                                        fseek(f, 3904, SEEK_SET);
                        }
-                       fread(data, 1, MCD_SIZE, f);
+                       if (fread(data, 1, MCD_SIZE, f) != MCD_SIZE) {
+#ifndef NDEBUG
+                               SysPrintf(_("File IO error in <%s:%s>.\n"), __FILE__, __func__);
+#endif
+                               memset(data, 0x00, MCD_SIZE);
+                       }
                        fclose(f);
                }
                else
@@ -469,7 +472,12 @@ void LoadMcd(int mcd, char *str) {
                        else if(buf.st_size == MCD_SIZE + 3904)
                                fseek(f, 3904, SEEK_SET);
                }
-               fread(data, 1, MCD_SIZE, f);
+               if (fread(data, 1, MCD_SIZE, f) != MCD_SIZE) {
+#ifndef NDEBUG
+                       SysPrintf(_("File IO error in <%s:%s>.\n"), __FILE__, __func__);
+#endif
+                       memset(data, 0x00, MCD_SIZE);
+               }
                fclose(f);
        }
 }
@@ -684,6 +692,7 @@ void ConvertMcd(char *mcd, char *data) {
                        fclose(f);
                }
                f = fopen(mcd, "r+");
+               if (f == NULL) return;
                s = s + 3904;
                fputc('1', f); s--;
                fputc('2', f); s--;
@@ -718,6 +727,7 @@ void ConvertMcd(char *mcd, char *data) {
                        fclose(f);
                }
                f = fopen(mcd, "r+");
+               if (f == NULL) return;
                s = s + 64;
                fputc('V', f); s--;
                fputc('g', f); s--;