]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
3400b14
authorToni Wilen <twilen@winuae.net>
Sat, 29 Oct 2016 13:15:31 +0000 (16:15 +0300)
committerToni Wilen <twilen@winuae.net>
Sat, 29 Oct 2016 13:15:31 +0000 (16:15 +0300)
12 files changed:
.gitignore
audio.cpp
cfgfile.cpp
cpuboard.cpp
debug.cpp
expansion.cpp
flashrom.cpp
od-win32/resources/winuae.rc
od-win32/win32.cpp
od-win32/win32.h
od-win32/win32gui.cpp
od-win32/winuaechangelog.txt

index a5939064c4f95762c5f217a551a0084a0dc2ac58..aa09874644fd4434be2c922a417c123e7afc3750 100644 (file)
@@ -73,3 +73,4 @@ aros.rom.cpp
 *.opendb
 packages
 packages.config
+*.sqlite
index b3ff3044f39844ff20434691bd04135c455847cf..757d5d698994d01a884910404a49c41345a6bfaa 100644 (file)
--- a/audio.cpp
+++ b/audio.cpp
@@ -1323,6 +1323,16 @@ STATIC_INLINE int is_audio_active (void)
        return audio_work_to_do;
 }
 
+static void update_volume(int nr, uae_u16 v)
+{
+       struct audio_channel_data *cdp = audio_channel + nr;
+       // 7 bit register in Paula.
+       v &= 127;
+       if (v > 64)
+               v = 64;
+       cdp->data.vol = v;
+}
+
 uae_u16 audio_dmal (void)
 {
        uae_u16 dmal = 0;
@@ -1403,10 +1413,7 @@ static void loaddat (int nr, bool modper)
                        else
                                cdp[1].per = PERIOD_MIN * CYCLE_UNIT;
                } else  if (audav) {
-                       cdp[1].data.vol = cdp->dat;
-                       cdp[1].data.vol &= 127;
-                       if (cdp[1].data.vol > 64)
-                               cdp[1].data.vol = 64;
+                       update_volume(nr + 1, cdp->dat);
                }
        } else {
 #if TEST_AUDIO > 0
@@ -2216,13 +2223,9 @@ void AUDxVOL (int nr, uae_u16 v)
 {
        struct audio_channel_data *cdp = audio_channel + nr;
 
-        // 7 bit register in Paula.
-       v &= 127;
-       if (v > 64)
-               v = 64;
        audio_activate ();
        update_audio ();
-       cdp->data.vol = v;
+       update_volume(nr, v);
 #if DEBUG_AUDIO > 0
        if (debugchannel (nr))
                write_log (_T("AUD%dVOL: %d %08X\n"), nr, v, M68K_GETPC);
index e7ede28c219c8101186040e1c9d13f646d2180f7..d60deb24a97b918253bd0f46bd316f29097bc8cb 100644 (file)
@@ -4615,17 +4615,21 @@ static void addbcromtype(struct uae_prefs *p, int romtype, bool add, const TCHAR
 
 static void addbcromtypenet(struct uae_prefs *p, int romtype, const TCHAR *netname, int devnum)
 {
+       int is = is_device_rom(p, romtype, devnum);
        if (netname == NULL || netname[0] == 0) {
-               clear_device_rom(p, romtype, devnum, true);
+               if (is < 0)
+                       clear_device_rom(p, romtype, devnum, true);
        } else {
-               struct boardromconfig *brc = get_device_rom_new(p, romtype, devnum, NULL);
-               if (brc) {
-                       if (!brc->roms[0].romfile[0]) {
-                               _tcscpy(brc->roms[0].romfile, _T(":ENABLED"));
+               if (is < 0) {
+                       struct boardromconfig *brc = get_device_rom_new(p, romtype, devnum, NULL);
+                       if (brc) {
+                               if (!brc->roms[0].romfile[0]) {
+                                       _tcscpy(brc->roms[0].romfile, _T(":ENABLED"));
+                               }
+                               ethernet_updateselection();
+                               if (!brc->roms[0].device_settings)
+                                       brc->roms[0].device_settings = ethernet_getselection(netname);
                        }
-                       ethernet_updateselection();
-                       if (!brc->roms[0].device_settings)
-                               brc->roms[0].device_settings = ethernet_getselection(netname);
                }
        }
 }
@@ -5166,6 +5170,7 @@ static void romtype_restricted(struct uae_prefs *p, const int *list)
                        while (list[i]) {
                                romtype = list[i];
                                if (is_board_enabled(p, romtype, 0)) {
+                                       write_log(_T("ROMTYPE %08x removed\n"), romtype);
                                        addbcromtype(p, romtype, false, NULL, 0);
                                }
                                i++;
index 12b0ca0d4491ba6a085708b4515fe00cc5d3e77f..9f5d03c5b5ca8416cf1bc647aa140b649c45a443 100644 (file)
@@ -2037,7 +2037,7 @@ bool cpuboard_io_special(int addr, uae_u32 *val, int size, bool write)
                uae_u16 w = *val;
                if (is_a2630(&currprefs)) {
                        if ((addr == 0x0040 && size == 2) || (addr == 0x0041 && size == 1)) {
-                               write_log(_T("A2630 write %04x PC=%08x\n"), w, M68K_GETPC);
+                               write_log(_T("A2630 write %04x s=%d PC=%08x\n"), w, size, M68K_GETPC);
                                a2630_io = w;
                                // bit 0: unmap 0x000000
                                // bit 1: unmap 0xf80000
index a27f100e4d867fc985ffc32859d41d536e2d6682..a0f53b6ff8d29cd5b345f47f983c2f969f5f35a1 100644 (file)
--- a/debug.cpp
+++ b/debug.cpp
@@ -3744,7 +3744,7 @@ fail:
 static TCHAR *getfrombstr(uaecptr pp)
 {
        uae_u8 *p = get_real_address ((uaecptr)(pp << 2));
-       TCHAR *s = xmalloc (TCHAR, p[0] + 1);
+       TCHAR *s = xcalloc (TCHAR, p[0] + 1);
        return au_copy (s, p[0] + 1, (char*)p + 1);
 }
 
@@ -3791,8 +3791,8 @@ static void show_exec_lists (TCHAR *t)
                        while (doslist) {
                                int type = get_long_debug (doslist + 4);
                                uaecptr msgport = get_long_debug (doslist + 8);
-                               TCHAR *name = getfrombstr (get_long_debug (doslist + 40));
-                               console_out_f (_T("%08x: %d %08x '%s'\n"), doslist, type, msgport, name);
+                               TCHAR *name = getfrombstr(get_long_debug(doslist + 40));
+                               console_out_f(_T("%08x: %d %08x '%s'\n"), doslist, type, msgport, name);
                                if (type == 0) {
                                        uaecptr fssm = get_long_debug(doslist + 28) << 2;
                                        console_out_f (_T(" - H=%08x Stack=%5d Pri=%2d Start=%08x Seg=%08x GV=%08x\n"),
index 5390d1a8e204f7095b1e6deabc970a928a29a060..f97998363a3f73bf95c29d79b87f870269c99558 100644 (file)
@@ -2277,6 +2277,7 @@ static void add_expansions(struct uae_prefs *p, int zorro, int *fastmem_nump, in
                                        cards_set[cardno].initrc = ert->init;
                                        cards_set[cardno].rc = rc;
                                        cards_set[cardno].zorro = zorro;
+                                       cards_set[cardno].ert = ert;
                                        cards_set[cardno++].map = NULL;
                                        if (ert->init2) {
                                                cards_set[cardno].flags = CARD_FLAG_CHILD;
@@ -4811,6 +4812,16 @@ const struct expansionromtype expansionroms[] = {
                false, EXPANSIONTYPE_NET,
                0, 0, 0, false, NULL,
                false, 0, ethernet_settings,
+               { 0xc1, 0x70, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
+       },
+       {
+               _T("ariadne"), _T("Ariadne"), _T("Village Tronic"),
+               ariadne_init, NULL, NULL, ROMTYPE_ARIADNE | ROMTYPE_NOT, 0, 0, BOARD_AUTOCONFIG_Z2, true,
+               NULL, 0,
+               false, EXPANSIONTYPE_NET,
+               0, 0, 0, false, NULL,
+               false, 0, ethernet_settings,
+               { 0xc1, 0xc9, 0x00, 0x00, 2167 >> 8, 2167 & 255, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
        },
        {
                _T("ariadne2"), _T("Ariadne II"), _T("Village Tronic"),
@@ -5437,6 +5448,10 @@ const struct cpuboardtype cpuboards[] = {
 const struct memoryboardtype memoryboards[]
 {
        // z2
+       {
+               _T("UAE"), _T("0xf00000 RAM"),
+               2, 0xf00000, 0xffff, 0xff
+       },
        {
                _T("DKB"), _T("Insider I/II"),
                2, 0x800000, 0xffff, 0xff
index 63571caa971797fa1274fa8d1887b9a82b399f51..86d71419b470c6840c80675d3541fecfd33dabf6 100644 (file)
@@ -226,7 +226,7 @@ void *eeprom93xx_new(const uae_u8 *memory, int nwords, struct zfile *zf)
        }
        /* Output DO is tristate, read results in 1. */
        eeprom->eedo = 1;
-       write_log("eeprom = 0x%p, nwords = %u\n", eeprom, nwords);
+//     write_log("eeprom = 0x%p, nwords = %u\n", eeprom, nwords);
        return eeprom;
 }
 
@@ -235,7 +235,7 @@ void eeprom93xx_free(void *eepromp)
        eeprom93xx_eeprom_t *eeprom = (eeprom93xx_eeprom_t*)eepromp;
 
        /* Destroy EEPROM. */
-       write_log("eeprom = 0x%p\n", eeprom);
+//     write_log("eeprom = 0x%p\n", eeprom);
        xfree(eeprom);
 }
 
index 204471e3fb57b2a87e691849128cca22fc8cd22b..2b9a5a7c8ac0cf3105289e0ef77f87c545146f2f 100644 (file)
@@ -917,7 +917,7 @@ BEGIN
     PUSHBUTTON      "Delete",IDC_FILTERPRESETDELETE,325,272,55,14
 END
 
-IDD_HARDDRIVE DIALOGEX 0, 0, 396, 109
+IDD_HARDDRIVE DIALOGEX 0, 0, 397, 136
 STYLE DS_LOCALEDIT | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
 CAPTION "Harddrive Settings"
 FONT 8, "MS Sans Serif", 0, 0, 0x0
@@ -926,13 +926,15 @@ BEGIN
     COMBOBOX        IDC_HARDDRIVE,49,9,339,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     EDITTEXT        IDC_HDFINFO,5,29,385,12,ES_CENTER | ES_READONLY
     EDITTEXT        IDC_HDFINFO2,5,46,385,12,ES_CENTER | ES_READONLY
-    DEFPUSHBUTTON   "Create hard disk image file",IDC_HARDDRIVE_IMAGE,40,67,115,14
-    EDITTEXT        IDC_PATH_NAME,188,67,97,15,ES_AUTOHSCROLL | NOT WS_VISIBLE
+    DEFPUSHBUTTON   "Create hard disk image file",IDC_HARDDRIVE_IMAGE,5,67,158,14
+    EDITTEXT        IDC_PATH_NAME,178,67,97,15,ES_AUTOHSCROLL | NOT WS_VISIBLE
     CONTROL         "Read/write",IDC_HDF_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,315,71,60,10
-    COMBOBOX        IDC_HDF_CONTROLLER,8,89,164,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    COMBOBOX        IDC_HDF_CONTROLLER_UNIT,179,89,25,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
-    DEFPUSHBUTTON   "Add hard drive",IDOK,236,87,73,14
-    PUSHBUTTON      "Cancel",IDCANCEL,316,87,73,14
+    COMBOBOX        IDC_HDF_CONTROLLER,8,113,218,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_HDF_CONTROLLER_UNIT,65,90,97,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    DEFPUSHBUTTON   "Add hard drive",IDOK,236,113,73,14
+    PUSHBUTTON      "Cancel",IDCANCEL,316,113,73,14
+    COMBOBOX        IDC_HDF_CONTROLLER_TYPE,178,90,97,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_HDF_FEATURE_LEVEL,291,90,97,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MISC2 DIALOGEX 0, 0, 396, 278
@@ -1566,6 +1568,8 @@ BEGIN
 
     IDD_HARDDRIVE, DIALOG
     BEGIN
+        RIGHTMARGIN, 396
+        BOTTOMMARGIN, 109
     END
 
     IDD_MISC2, DIALOG
index e3f0b9f4d2c8b4c4f17bec551607e8b134fe35ad..2359b7ece8b260cb1df4ad98f4942690d79f19dd 100644 (file)
@@ -6962,6 +6962,20 @@ const TCHAR **uaenative_get_library_dirs (void)
 
 typedef BOOL (CALLBACK* CHANGEWINDOWMESSAGEFILTER)(UINT, DWORD);
 
+#ifndef NDEBUG
+typedef struct _PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY {
+       union {
+               DWORD  Flags;
+               struct {
+                       DWORD RaiseExceptionOnInvalidHandleReference : 1;
+                       DWORD HandleExceptionsPermanentlyEnabled : 1;
+                       DWORD ReservedFlags : 30;
+               };
+       };
+} PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY;
+typedef BOOL (WINAPI* SETPROCESSMITIGATIONPOLICY)(DWORD, PVOID, SIZE_T);
+static SETPROCESSMITIGATIONPOLICY pSetProcessMitigationPolicy;
+#endif
 
 int PASCAL wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
 {
@@ -6983,6 +6997,16 @@ int PASCAL wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdL
        }
 #endif
 #endif
+
+#ifndef NDEBUG
+       PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY p = { 0 };
+       p.HandleExceptionsPermanentlyEnabled = 1;
+       p.RaiseExceptionOnInvalidHandleReference = 1;
+       //ProcessStrictHandleCheckPolicy = 3
+       pSetProcessMitigationPolicy = (SETPROCESSMITIGATIONPOLICY)GetProcAddress(GetModuleHandle(_T("kernel32.dll")), "SetProcessMitigationPolicy");
+       pSetProcessMitigationPolicy(3, &p, sizeof p);
+#endif
+
        executable_path[0] = 0;
        GetModuleFileName(NULL, executable_path, sizeof executable_path / sizeof(TCHAR));
 
index 70ce09691395b11338f8f6763e4f2ef49e476b6c..ccda6d49b7c291ce175abd77d9919312025aa046 100644 (file)
 #define LANG_DLL_FULL_VERSION_MATCH 1
 
 #if WINUAEPUBLICBETA
-#define WINUAEBETA _T("13")
+#define WINUAEBETA _T("14")
 #else
 #define WINUAEBETA _T("")
 #endif
 
-#define WINUAEDATE MAKEBD(2016, 10, 21)
+#define WINUAEDATE MAKEBD(2016, 10, 29)
 
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")
index aa174089903684b4800c311470d7d39bf5a94a28..beb11be51dfcf2520ef605a8cc30a64b967c2589 100644 (file)
@@ -11939,8 +11939,8 @@ static void values_from_sounddlg (HWND hDlg)
        }
        if (workprefs.sound_freq < 8000)
                workprefs.sound_freq = 8000;
-       if (workprefs.sound_freq > 96000)
-               workprefs.sound_freq = 96000;
+       if (workprefs.sound_freq > 192000)
+               workprefs.sound_freq = 192000;
 
        workprefs.produce_sound = (ischecked (hDlg, IDC_SOUND0) ? 0
                : ischecked (hDlg, IDC_SOUND1) ? 1 : 3);
@@ -12408,6 +12408,21 @@ STATIC_INLINE bool is_hdf_rdb (void)
 
 static int hdmenutable[256];
 
+static void sethardfiletypes(HWND hDlg)
+{
+       bool ide = current_hfdlg.ci.controller_type >= HD_CONTROLLER_TYPE_IDE_FIRST && current_hfdlg.ci.controller_type <= HD_CONTROLLER_TYPE_IDE_LAST;
+       bool scsi = current_hfdlg.ci.controller_type >= HD_CONTROLLER_TYPE_SCSI_FIRST && current_hfdlg.ci.controller_type <= HD_CONTROLLER_TYPE_SCSI_LAST;
+       ew(hDlg, IDC_HDF_CONTROLLER_TYPE, ide);
+       ew(hDlg, IDC_HDF_FEATURE_LEVEL, ide || scsi);
+       if (!ide) {
+               current_hfdlg.ci.controller_media_type = 0;
+       }
+       if (current_hfdlg.ci.controller_media_type && current_hfdlg.ci.unit_feature_level == 0)
+               current_hfdlg.ci.unit_feature_level = 1;
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER_TYPE, CB_SETCURSEL, current_hfdlg.ci.controller_media_type, 0);
+       SendDlgItemMessage(hDlg, IDC_HDF_FEATURE_LEVEL, CB_SETCURSEL, current_hfdlg.ci.unit_feature_level, 0);
+}
+
 static void sethardfile (HWND hDlg)
 {
        bool rdb = is_hdf_rdb ();
@@ -12451,15 +12466,7 @@ static void sethardfile (HWND hDlg)
        hide(hDlg, IDC_CYLINDERS_TEXT, !rdb);
        gui_set_string_cursor(hdmenutable, hDlg, IDC_HDF_CONTROLLER, current_hfdlg.ci.controller_type +  current_hfdlg.ci.controller_type_unit * HD_CONTROLLER_NEXT_UNIT);
        SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_SETCURSEL, current_hfdlg.ci.controller_type != HD_CONTROLLER_TYPE_PCMCIA ? current_hfdlg.ci.controller_unit : current_hfdlg.ci.controller_type_unit, 0);
-       ew(hDlg, IDC_HDF_CONTROLLER_TYPE, ide);
-       ew(hDlg, IDC_HDF_FEATURE_LEVEL, ide || scsi);
-       if (!ide) {
-               current_hfdlg.ci.controller_media_type = 0;
-       }
-       if (current_hfdlg.ci.controller_media_type && current_hfdlg.ci.unit_feature_level == 0)
-               current_hfdlg.ci.unit_feature_level = 1;
-       SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_TYPE, CB_SETCURSEL, current_hfdlg.ci.controller_media_type, 0);
-       SendDlgItemMessage (hDlg, IDC_HDF_FEATURE_LEVEL, CB_SETCURSEL, current_hfdlg.ci.unit_feature_level, 0);
+       sethardfiletypes(hDlg);
 }
 
 static void addhdcontroller(HWND hDlg, const struct expansionromtype *erc, int *hdmenutable, int firstid, int flags)
@@ -13232,6 +13239,7 @@ static INT_PTR CALLBACK HarddriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
                        oposn = -1;
                        hdf_init_target ();
                        recursive++;
+                       sethardfiletypes(hDlg);
                        inithdcontroller(hDlg, current_hfdlg.ci.controller_type, current_hfdlg.ci.controller_type_unit, UAEDEV_HDF);
                        CheckDlgButton (hDlg, IDC_HDF_RW, !current_hfdlg.ci.readonly);
                        SendDlgItemMessage (hDlg, IDC_HARDDRIVE, CB_RESETCONTENT, 0, 0);
@@ -13251,7 +13259,8 @@ static INT_PTR CALLBACK HarddriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
                                SendDlgItemMessage (hDlg, IDC_HARDDRIVE, CB_SETCURSEL, index, 0);
                                gui_set_string_cursor(hdmenutable, hDlg, IDC_HDF_CONTROLLER, current_hfdlg.ci.controller_type + current_hfdlg.ci.controller_type_unit * HD_CONTROLLER_NEXT_UNIT);
                                SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER_UNIT, CB_SETCURSEL, current_hfdlg.ci.controller_type != HD_CONTROLLER_TYPE_PCMCIA ? current_hfdlg.ci.controller_unit : current_hfdlg.ci.controller_type_unit, 0);
-                               SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_TYPE, CB_SETCURSEL, current_hfdlg.ci.controller_media_type, 0);
+                               SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER_TYPE, CB_SETCURSEL, current_hfdlg.ci.controller_media_type, 0);
+                               SendDlgItemMessage(hDlg, IDC_HDF_FEATURE_LEVEL, CB_SETCURSEL, current_hfdlg.ci.unit_feature_level, 0);
                        }
                        recursive--;
                        return TRUE;
@@ -13301,8 +13310,6 @@ static INT_PTR CALLBACK HarddriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
                                        current_hfdlg.ci.blocksize = 512;
                                        current_hfdlg.forcedcylinders = 0;
                                        current_hfdlg.ci.cyls = current_hfdlg.ci.highcyl = current_hfdlg.ci.sectors = current_hfdlg.ci.surfaces = 0;
-                                       ew (hDlg, IDC_HDF_CONTROLLER, ena);
-                                       ew (hDlg, IDC_HDF_CONTROLLER_UNIT, ena);
                                        SetDlgItemText (hDlg, IDC_HDFINFO, _T(""));
                                        SetDlgItemText (hDlg, IDC_HDFINFO2, _T(""));
                                        updatehdfinfo (hDlg, true, true);
@@ -13310,6 +13317,7 @@ static INT_PTR CALLBACK HarddriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
                                        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER_UNIT, CB_SETCURSEL, current_hfdlg.ci.controller_type != HD_CONTROLLER_TYPE_PCMCIA ? current_hfdlg.ci.controller_unit : current_hfdlg.ci.controller_type_unit, 0);
                                        CheckDlgButton(hDlg, IDC_HDF_RW, !current_hfdlg.ci.readonly);
                                        _tcscpy (current_hfdlg.ci.rootdir, hdf_getnameharddrive ((int)posn, 4, &current_hfdlg.ci.blocksize, NULL));
+                                       sethardfiletypes(hDlg);
                                }
                        }
                } else if (LOWORD (wParam) == IDC_HDF_CONTROLLER) {
@@ -13324,6 +13332,7 @@ static INT_PTR CALLBACK HarddriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
                                updatehdfinfo (hDlg, true, true);
                                inithdcontroller(hDlg, current_hfdlg.ci.controller_type, current_hfdlg.ci.controller_type_unit, UAEDEV_HDF);
                                SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER_UNIT, CB_SETCURSEL, current_hfdlg.ci.controller_type != HD_CONTROLLER_TYPE_PCMCIA ? current_hfdlg.ci.controller_unit : current_hfdlg.ci.controller_type_unit, 0);
+                               sethardfiletypes(hDlg);
                        }
                } else if (LOWORD(wParam) == IDC_HDF_CONTROLLER_UNIT) {
                        posn = SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_GETCURSEL, 0, 0);
@@ -13338,6 +13347,11 @@ static INT_PTR CALLBACK HarddriveSettingsProc (HWND hDlg, UINT msg, WPARAM wPara
                        if (posn != CB_ERR) {
                                current_hfdlg.ci.controller_media_type = posn;
                        }
+               } else if (LOWORD(wParam) == IDC_HDF_FEATURE_LEVEL) {
+                       posn = SendDlgItemMessage(hDlg, IDC_HDF_FEATURE_LEVEL, CB_GETCURSEL, 0, 0);
+                       if (posn != CB_ERR) {
+                               current_hfdlg.ci.unit_feature_level = posn;
+                       }
                }
                recursive--;
                break;
index 31b527bf4f898092b97b8ce0e99de73d03b40f9b..e49a54e00b160abbab20fa0957a72a2af993d19a 100644 (file)
@@ -4,7 +4,18 @@ JIT Direct current rules are less complex now. It automatically switches off onl
   - RTG VRAM is outside of reserved natmem space. Workaround: Move RTG in earlier position using Hardware info GUI panel.\r
   Note that in 64-bit version RTG VRAM must be inside of reserved natmem space. (Outside = error message and return back to GUI)\r
 \r
-Beta 12:\r
+\r
+Beta 14:\r
+\r
+- Ariadne network adapter emulation added. (Am79c960 based, improved Am79c90)\r
+- uaesnd update, sample format byte changed, added support for little-endian and signed samples.\r
+- Old NE2000 config entries overrode new style entries until config file was rewritten at least once.\r
+- Sound output frequency max limit increased from 96KHz to 192KHz. (Useless but if you really want to do it..)\r
+- Added missing drive type/feature level options to add harddrive dialog.\r
+- Opalvision updates, OpalPaint palette is now fully visible, interlace mode missing lines fixed.\r
+  King of Karate confirmed working. PlayAnim24 (which uses sort of polarity inverted control line) works. \r
+\r
+Beta 13:\r
 \r
 - Fixed double free in RTL8019 9346 EEPROM emulation. Caused random crashes.\r
 - Implemented DP8390 NIC support (Same register set as NE2000 but without on board RAM "fake DMA" support)\r