diff --git a/CMakeLists.txt b/CMakeLists.txt index c4be7c3de..b1f56e7da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ cmake_policy(SET CMP0091 NEW) cmake_policy(SET CMP0079 NEW) project(86Box - VERSION 3.1 + VERSION 3.2 DESCRIPTION "Emulator of x86-based systems" HOMEPAGE_URL "https://86box.net" LANGUAGES C CXX) diff --git a/src/chipset/opti495.c b/src/chipset/opti495.c index 5d2313ef9..cdde85300 100644 --- a/src/chipset/opti495.c +++ b/src/chipset/opti495.c @@ -152,7 +152,7 @@ opti495_write(uint16_t addr, uint8_t val, void *priv) case 0xe1: case 0xe2: - dev->scratch[addr] = val; + dev->scratch[~addr & 0x01] = val; break; } } @@ -176,7 +176,7 @@ opti495_read(uint16_t addr, void *priv) break; case 0xe1: case 0xe2: - ret = dev->scratch[addr]; + ret = dev->scratch[~addr & 0x01]; break; } diff --git a/src/chipset/opti499.c b/src/chipset/opti499.c index 87bc39c8d..1768908a4 100644 --- a/src/chipset/opti499.c +++ b/src/chipset/opti499.c @@ -162,7 +162,7 @@ opti499_write(uint16_t addr, uint8_t val, void *priv) break; case 0xe1: case 0xe2: - dev->scratch[addr] = val; + dev->scratch[~addr & 0x01] = val; break; } } @@ -189,7 +189,7 @@ opti499_read(uint16_t addr, void *priv) break; case 0xe1: case 0xe2: - ret = dev->scratch[addr]; + ret = dev->scratch[~addr & 0x01]; break; } diff --git a/src/chipset/sis_85c496.c b/src/chipset/sis_85c496.c index 33225e4a2..9f4952597 100644 --- a/src/chipset/sis_85c496.c +++ b/src/chipset/sis_85c496.c @@ -143,6 +143,8 @@ sis_85c496_recalcmapping(sis_85c496_t *dev) } else mem_set_mem_state_both(base, 0x8000, MEM_READ_EXTANY | MEM_WRITE_EXTANY); } + + flushmmucache_nopc(); } @@ -240,13 +242,8 @@ sis_85c49x_pci_write(int func, int addr, uint8_t val, void *priv) break; case 0x45: /* Shadow Configure */ dev->pci_conf[addr] = val & 0x0f; - if (valxor & 0x03) { + if (valxor & 0x03) sis_85c496_recalcmapping(dev); - if ((old == 0x0a) && (val == 0x09)) - flushmmucache_nopc(); - else - flushmmucache(); - } break; case 0x46: /* Cacheable Control */ dev->pci_conf[addr] = val; diff --git a/src/include_make/86box/version.h b/src/include_make/86box/version.h index b2eb49aaf..9228c68e3 100644 --- a/src/include_make/86box/version.h +++ b/src/include_make/86box/version.h @@ -20,9 +20,9 @@ #define EMU_NAME "86Box" #define EMU_NAME_W LSTR(EMU_NAME) -#define EMU_VERSION "3.1" +#define EMU_VERSION "3.2" #define EMU_VERSION_W LSTR(EMU_VERSION) -#define EMU_VERSION_EX "3.01" +#define EMU_VERSION_EX "3.02" #define EMU_VERSION_MAJ 3 #define EMU_VERSION_MIN 0 #define EMU_VERSION_PATCH 0