dma: don't generate irqs after aborted DMA
[pcsx_rearmed.git] / libpcsxcore / misc.c
index 4a70b2f..7353c3b 100644 (file)
@@ -333,7 +333,7 @@ int CheckCdrom() {
        }
 
        if (Config.PsxAuto) { // autodetect system (pal or ntsc)
-               if (strstr(exename, "ES") != NULL)
+               if (CdromId[2] == 'e' || CdromId[2] == 'E')
                        Config.PsxType = PSX_TYPE_PAL; // pal
                else Config.PsxType = PSX_TYPE_NTSC; // ntsc
        }
@@ -534,10 +534,14 @@ int LoadState(const char *file) {
        gzread(f, &version, sizeof(u32));
        gzread(f, &hle, sizeof(boolean));
 
-       if (strncmp("STv4 PCSX", header, 9) != 0 || version != SaveVersion || hle != Config.HLE) {
+       if (strncmp("STv4 PCSX", header, 9) != 0 || version != SaveVersion) {
                gzclose(f);
                return -1;
        }
+       Config.HLE = hle;
+
+       if (Config.HLE)
+               psxBiosInit();
 
        psxCpu->Reset();
        gzseek(f, 128 * 96 * 3, SEEK_CUR);
@@ -590,7 +594,7 @@ int CheckState(const char *file) {
 
        gzclose(f);
 
-       if (strncmp("STv4 PCSX", header, 9) != 0 || version != SaveVersion || hle != Config.HLE)
+       if (strncmp("STv4 PCSX", header, 9) != 0 || version != SaveVersion)
                return -1;
 
        return 0;