]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
3100b7
authorToni Wilen <twilen@winuae.net>
Sun, 1 Feb 2015 15:00:58 +0000 (17:00 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 1 Feb 2015 15:00:58 +0000 (17:00 +0200)
custom.cpp
od-win32/dinput.cpp
od-win32/resources/winuae.rc
od-win32/win32.h
od-win32/win32gui.cpp
od-win32/winuae_msvc11/winuae_msvc.vcxproj
od-win32/winuae_msvc11/winuae_msvc.vcxproj.filters
od-win32/winuaechangelog.txt

index 0e2848106575aea9fac606b46df82d054e208e7b..eaec837b11409c5443df2d5aae4412779348781a 100644 (file)
@@ -2476,7 +2476,8 @@ static void update_fetch (int until, int fm)
                                ddfstop_matched = true;
                        }
                        if (pos <= HARD_DDF_STOP && stoppos > HARD_DDF_STOP) {
-                               plf_state = plf_passed_stop_act;
+                               if (plf_state < plf_wait)
+                                       plf_state = plf_passed_stop_act;
                        }
                        if (pos <= ddfstop_to_test && stoppos > ddf2) {
                                plf_state = plf_passed_stop2;
index 390df6d9616bfa1cd361ef457c4c9aa9c113497e..c0a1759080f7134c7c98722a87eca0e7a9519e3f 100644 (file)
@@ -408,7 +408,7 @@ static int doregister_rawinput (void)
 {
        int num;
        bool add;
-       RAWINPUTDEVICE rid[2 + MAX_INPUT_DEVICES];
+       RAWINPUTDEVICE rid[2 + MAX_INPUT_DEVICES] = { 0 };
        int activate;
 
        if (!rawinput_available)
index c3255fce592a726d5bbe0e64088acdb5d8ec858a..ffb071f572288012f09afed5571026c25b209e1c 100644 (file)
@@ -597,8 +597,8 @@ BEGIN
     EDITTEXT        IDC_HEADS,262,90,40,15,ES_NUMBER
     RTEXT           "Reserved:",IDC_RESERVED_TEXT,307,94,50,10
     EDITTEXT        IDC_RESERVED,362,90,28,15,ES_NUMBER
-    RTEXT           "HD Controller:",IDC_STATIC,11,113,54,10,SS_CENTERIMAGE
-    COMBOBOX        IDC_HDF_CONTROLLER,73,112,93,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    RTEXT           "HD Controller:",IDC_STATIC,10,94,54,10,SS_CENTERIMAGE
+    COMBOBOX        IDC_HDF_CONTROLLER,6,112,158,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     RTEXT           "Sectors:",IDC_SECTORS_TEXT,209,113,48,10
     EDITTEXT        IDC_SECTORS,262,111,40,15,ES_NUMBER
     RTEXT           "Block size:",IDC_BLOCKSIZE_TEXT,306,113,50,10
@@ -863,10 +863,9 @@ 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,49,67,115,14
+    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
-    RTEXT           "HD Controller:",IDC_STATIC,16,90,56,10,SS_CENTERIMAGE
-    COMBOBOX        IDC_HDF_CONTROLLER,80,89,92,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
+    COMBOBOX        IDC_HDF_CONTROLLER,8,89,164,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Read/write",IDC_HDF_RW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,315,71,60,10
     DEFPUSHBUTTON   "Add hard drive",IDOK,236,87,73,14
     PUSHBUTTON      "Cancel",IDCANCEL,316,87,73,14
@@ -966,7 +965,7 @@ BEGIN
     PUSHBUTTON      "Open [] Open selected file.",IDC_LOGOPEN,337,280,51,14
     COMBOBOX        IDC_LOGSELECT,7,263,137,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP
     CONTROL         "Enable full logging",IDC_LOGENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,264,93,12
-    PUSHBUTTON      "Save All [] Save and open both logs and config file.",IDC_LOGSAVE,337,264,51,14
+    PUSHBUTTON      "Save All [] Create zip file that includes both logs and config file.",IDC_LOGSAVE,337,264,51,14
     GROUPBOX        "Debug logging",IDC_STATIC,1,248,393,53
     CONTROL         "Log window",IDC_LOGENABLE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,254,264,68,12
     CONTROL         "Portable mode",IDC_REGISTRYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,303,231,82,11
@@ -1134,8 +1133,7 @@ BEGIN
     COMBOBOX        IDC_NETDEVICE,202,256,178,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
     CONTROL         "CD32 Full Motion Video cartridge",IDC_CS_CD32FMV,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,242,151,11
     CONTROL         "Toccata Z2 sound card emulation",IDC_CS_TOCCATA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,255,151,11
-    CONTROL         "Toccata Paula audio mix",IDC_CS_TOCCATAMIXER,
-                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,268,151,11
+    CONTROL         "Toccata Paula audio mix",IDC_CS_TOCCATAMIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,268,151,11
 END
 
 IDD_INPUTMAP DIALOGEX 0, 0, 421, 341
index 2e6aa5c18ecc71ea18671b2672322ee2ea772607..a784ed616475d4a25ba0c148f13d1d46357e5a5c 100644 (file)
 #define LANG_DLL_FULL_VERSION_MATCH 1
 
 #if WINUAEPUBLICBETA
-#define WINUAEBETA _T("6")
+#define WINUAEBETA _T("7")
 #else
 #define WINUAEBETA _T("")
 #endif
 
-#define WINUAEDATE MAKEBD(2015, 1, 23)
+#define WINUAEDATE MAKEBD(2015, 2, 1)
 
 //#define WINUAEEXTRA _T("AmiKit Preview")
 //#define WINUAEEXTRA _T("Amiga Forever Edition")
index df8c200196f3f7d84a9e254f52e8809e47a838c7..8b92ca30cb82c63d42b206f2637d131a6f7d2820 100644 (file)
@@ -187,15 +187,20 @@ struct scsiromselect
        TCHAR *name;
        int mask;
 };
-static struct scsiromselect scsiromdata[] =
+static const struct scsiromselect scsiromdata[] =
 {
        { _T("A590/A2091"), workprefs.a2091rom.roms[0].romfile, ROMTYPE_A2091 | ROMTYPE_NONE },
-       { _T("GVP Series II"), workprefs.gvprom.roms[0].romfile, ROMTYPE_GVP | ROMTYPE_NONE },
+       { _T("GVP Series I"), workprefs.gvps1rom.roms[0].romfile, ROMTYPE_GVPS1 | ROMTYPE_NONE },
+       { _T("GVP Series II"), workprefs.gvps2rom.roms[0].romfile, ROMTYPE_GVPS2 | ROMTYPE_NONE },
        { _T("A4091"), workprefs.a4091rom.roms[0].romfile, ROMTYPE_A4091 },
        { _T("Fastlane"), workprefs.fastlanerom.roms[0].romfile, ROMTYPE_FASTLANE },
        { _T("Oktagon 2008"), workprefs.oktagonrom.roms[0].romfile, ROMTYPE_OKTAGON },
        { _T("Blizzard SCSI Kit IV"), workprefs.acceleratorextromfile, ROMTYPE_CPUBOARDEXT },
        { _T("AMAX"), workprefs.amaxromfile, ROMTYPE_AMAX | ROMTYPE_NONE },
+       { _T("AlfaPower/AT-Bus 2008"), workprefs.alfrom.roms[0].romfile, ROMTYPE_ALFA },
+       { _T("AlfaPower Plus"), workprefs.alfplusrom.roms[0].romfile, ROMTYPE_ALFAPLUS },
+       { _T("Apollo SCSI/IDE"), workprefs.apollorom.roms[0].romfile, ROMTYPE_APOLLO },
+       { _T("Masoboshi SCSI/IDE"), workprefs.masoboshirom.roms[0].romfile, ROMTYPE_MASOBOSHI | ROMTYPE_NONE },
        { NULL, 0 }
 };
 
@@ -454,6 +459,9 @@ static BOOL GetFileDialog (OPENFILENAME *opn, const GUID *guid, int mode)
                pfd->SetFileTypeIndex (opn->nFilterIndex);
        }
 
+       if (mode >= 0 && opn->lpstrFile) {
+               pfd->SetFileName(opn->lpstrFile);
+       }
        if (opn->lpstrTitle) {
                pfd->SetTitle (opn->lpstrTitle);
        }
@@ -1663,10 +1671,16 @@ static void show_rom_list (void)
                57, 58, -1, -1, // A4091
                102, -1, -1, // Fastlane
                103, -1, -1, // Oktagon
+               117, -1, -1, // alf
+               118, -1, -1, // alf+
+               120, -1, -2, // masoboshi
+
                18, -1, 19, -1, 74, 23, -1, -1,  // CD32 FMV
                91, -1, -2, // Picasso IV
 
                105, 106, -1, -1, // A2630
+               119, -1, -1, // Apollo 1240/1260
+               110, -1, -1, // GVP A530
                114, -1, -1, // A3001
                89, -1, -1, // 1230-IV
                89, -1, 94, -1, -1, // 1230-IV SCSI
@@ -1698,11 +1712,15 @@ static void show_rom_list (void)
        p1 = _T("A500 Boot ROM 1.2\0A500 Boot ROM 1.3\0A500+\0A600\0A1000\0A1200\0A3000\0A4000\0A4000T\0")
                _T("CD32\0CDTV\0CDTV-CR\0Arcadia Multi Select\0")
 
-               _T("A590/A2091 SCSI\0GVP Series I SCSI\0GVP Series II SCSI\0A4091 SCSI\0Fastlane\0Oktagon 2008\0")
+               _T("A590/A2091 SCSI/XT\0GVP Series I SCSI\0GVP Series II SCSI\0A4091 SCSI\0Fastlane SCSI\0Oktagon 2008 SCSI\0")
+               _T("AlfaPower/AT-BUS 508/2008 SCSI\0AlfaPower Plus SCSI\0Masoboshi MC-702 IDE/SCSI\0")
+
                _T("CD32 Full Motion Video\0")
                _T("Picasso IV\0")
 
                _T("A2620/A2630\0")
+               _T("Apollo 1240/1260+SCSI\0")
+               _T("GVP A530\0")
                _T("GVP A3001 Series I\0")
                _T("Blizzard 1230-IV\0Blizzard 1260\0")
                _T("Blizzard 1230-IV/SCSI\0Blizzard 1260/SCSI\0")
@@ -2609,6 +2627,7 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs
        if (multi)
                openFileName.Flags |= OFN_ALLOWMULTISELECT;
        if (flag == 1 || flag == 3 || flag == 5 || flag == 9 || flag == 16) {
+               openFileName.Flags &= ~OFN_FILEMUSTEXIST;
                if (!(result = GetSaveFileName_2 (hDlg, &openFileName, guid)))
                        write_log (_T("GetSaveFileNameX() failed, err=%d.\n"), GetLastError ());
        } else {
@@ -4304,7 +4323,13 @@ void InitializeListView (HWND hDlg)
                                const TCHAR *idedevs[] = {
                                        _T("IDE:%d"),
                                        _T("MB IDE:%d"),
-                                       _T("GVP IDE:%d")
+                                       _T("GVP IDE:%d"),
+                                       _T("Alfa:%d"),
+                                       _T("Alfa 2nd:%d"),
+                                       _T("Apollo:%d"),
+                                       _T("Apollo 2nd:%d"),
+                                       _T("Masoboshi:%d"),
+                                       _T("Masoboshi 2nd:%d")
                                };
                                _stprintf (blocksize_str, _T("%d"), ci->blocksize);
                                _stprintf (devname_str, idedevs[ctype - HD_CONTROLLER_TYPE_IDE_FIRST], ci->controller_unit);
@@ -4324,10 +4349,14 @@ void InitializeListView (HWND hDlg)
                                        _T("Fastlane 2nd:%s"),
                                        _T("Oktagon:%s"),
                                        _T("Oktagon 2nd:%s"),
+                                       _T("Apollo:%s"),
+                                       _T("Apollo 2nd:%s"),
+                                       _T("Masoboshi:%s"),
+                                       _T("Masoboshi 2nd:%s"),
                                        _T("A3000:%s"),
                                        _T("A4000T:%s"),
                                        _T("CDTV:%s"),
-                                       _T("Accelerator:%s")
+                                       _T("Accelerator SCSI:%s")
                                };
                                if (ci->controller_unit == 7 && (ctype == HD_CONTROLLER_TYPE_SCSI_A2091 || ctype == HD_CONTROLLER_TYPE_SCSI_A2091_2))
                                        _tcscpy(sid, _T("XT"));
@@ -5250,6 +5279,8 @@ static void resetregistry (void)
        regdelete (NULL, _T("ShownsupportedModes"));
 }
 
+#include "zip.h"
+
 static void copylog (const TCHAR *name, const TCHAR *path, FILE *f)
 {
        FILE *s;
@@ -5283,17 +5314,100 @@ static void saveconfig (FILE *f)
        xfree (s);
 }
 
-static void savelog (int all)
+static void zipdate(zip_fileinfo *zi)
 {
-       FILE *f;
+       SYSTEMTIME st;
+       FILETIME ft;
+       WORD dosdate, dostime;
 
-       TCHAR tmp[MAX_DPATH];
-       tmp[0] = 0;
-       if (GetTempPath (MAX_DPATH, tmp) <= 0)
+       memset(zi, 0, sizeof zip_fileinfo);
+
+       GetLocalTime (&st);
+       SystemTimeToFileTime (&st, &ft);
+       FileTimeToDosDateTime(&ft, &dosdate, &dostime);
+       zi->dosDate = (dosdate << 16) | dostime;
+}
+
+static void ziplog(const char *name, const TCHAR *path, zipFile zf)
+{
+       zip_fileinfo zi;
+       FILE *s;
+       
+       s = my_opentext (path);
+       if (s) {
+               zipdate(&zi);
+               if (zipOpenNewFileInZip(zf, name, &zi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION) == ZIP_OK) {
+                       for (;;) {
+                               TCHAR buf[MAX_DPATH];
+                               if (!fgetws (buf, sizeof buf / sizeof (TCHAR), s))
+                                       break;
+                               zipWriteInFileInZip(zf, buf, _tcslen(buf) * sizeof TCHAR);
+                       }
+                       zipCloseFileInZip(zf);
+               }
+               xfree(s);
+       }
+}
+static void zipconfig(const char *name, zipFile zf)
+{
+       int len;
+       uae_u8 *s;
+       zip_fileinfo zi;
+       
+       s = save_configuration (&len, true);
+       if (!s)
                return;
+       zipdate(&zi);
+       if (zipOpenNewFileInZip(zf, name, &zi, NULL, 0, NULL, 0, NULL, Z_DEFLATED, Z_DEFAULT_COMPRESSION) == ZIP_OK) {
+               zipWriteInFileInZip(zf, s, len);
+               zipCloseFileInZip(zf);
+       }
+       xfree(s);
+}
+
+static void savelog (HWND hDlg, int all)
+{
+       TCHAR tmp[MAX_DPATH], tmp2[MAX_DPATH];
+       tmp[0] = 0;
        if (all) {
+               OPENFILENAME openFileName = { 0 };
+
                flush_log ();
-               _tcscat (tmp, _T("winuae_debug.txt"));
+               _tcscat (tmp, _T("winuae_debug.zip"));
+               _tcscpy (tmp2, tmp);
+
+               openFileName.lStructSize = sizeof (OPENFILENAME);
+               openFileName.hwndOwner = hDlg;
+               openFileName.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_OVERWRITEPROMPT |
+                       OFN_LONGNAMES | OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_ENABLESIZING;
+               openFileName.lpstrFile = tmp;
+               openFileName.lpstrFileTitle = tmp2;
+               openFileName.nMaxFile = MAX_DPATH;
+               openFileName.nMaxFileTitle = MAX_DPATH;
+               openFileName.lpstrDefExt = _T("zip");
+
+               // {8F1A2703-9FE0-468A-BBD7-D2336FD693E8}
+               static const GUID logdialogguid = { 0x8f1a2703, 0x9fe0, 0x468a, { 0xbb, 0xd7, 0xd2, 0x33, 0x6f, 0xd6, 0x93, 0xe8 } };
+               if (GetSaveFileName_2 (hDlg, &openFileName, &logdialogguid)) {
+                       zipFile zf = zipOpen(openFileName.lpstrFile, 0);
+                       if (zf) {
+                               ziplog("winuaebootlog.txt", bootlogpath, zf);
+                               ziplog("winuaelog.txt", logpath, zf);
+                               zipconfig("config.uae", zf);
+                       }
+                       zipClose(zf, NULL);
+               }
+       } else {
+               if (GetTempPath (MAX_DPATH, tmp) <= 0)
+                       return;
+               _tcscat (tmp, _T("winuae_config.txt"));
+               FILE *f = _tfopen (tmp, _T("wt, ccs=UTF-8"));
+               saveconfig (f);
+               fclose (f);
+               ShellExecute (NULL, _T("open"), tmp, NULL, NULL, SW_SHOWNORMAL);
+       }
+#if 0          
+       if (all) {
                f = _tfopen (tmp, _T("wt, ccs=UTF-8"));
                copylog (_T("winuaebootlog"), bootlogpath, f);
                copylog (_T("winuaelog"), logpath, f);
@@ -5308,7 +5422,7 @@ static void savelog (int all)
                saveconfig (f);
                fclose (f);
        }
-       ShellExecute (NULL, _T("open"), tmp, NULL, NULL, SW_SHOWNORMAL);
+#endif
 }
 
 pathtype path_type;
@@ -5414,7 +5528,7 @@ static INT_PTR CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                        switch (LOWORD (wParam))
                        {
                        case IDC_LOGSAVE:
-                               savelog (1);
+                               savelog (hDlg, 1);
                                break;
                        case IDC_LOGENABLE:
                                winuaelog_temporary_enable = ischecked (hDlg, IDC_LOGENABLE);
@@ -5433,7 +5547,7 @@ static INT_PTR CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                                        if (logpath[0])
                                                ShellExecute (NULL, _T("open"), logpath, NULL, NULL, SW_SHOWNORMAL);
                                } else if (val == 2) {
-                                       savelog (0);
+                                       savelog (hDlg, 0);
                                }
                                break;
                        case IDC_PATHS_ROMS:
@@ -8336,6 +8450,8 @@ static INT_PTR CALLBACK MemoryDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA
                SendDlgItemMessage(hDlg, IDC_CPUBOARD_TYPE, CB_ADDSTRING, 0, (LPARAM)_T("Fusion Forty"));
                SendDlgItemMessage(hDlg, IDC_CPUBOARD_TYPE, CB_ADDSTRING, 0, (LPARAM)_T("GVP A3001 Series I"));
                SendDlgItemMessage(hDlg, IDC_CPUBOARD_TYPE, CB_ADDSTRING, 0, (LPARAM)_T("GVP A3001 Series II"));
+               SendDlgItemMessage(hDlg, IDC_CPUBOARD_TYPE, CB_ADDSTRING, 0, (LPARAM)_T("Apollo 1240/1260"));
+               SendDlgItemMessage(hDlg, IDC_CPUBOARD_TYPE, CB_ADDSTRING, 0, (LPARAM)_T("GVP A530"));
                setcpuboardmemsize(hDlg);
 
        case WM_USER:
@@ -8397,7 +8513,7 @@ static INT_PTR CALLBACK MemoryDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARA
        return FALSE;
 }
 
-static void addromfiles (UAEREG *fkey, HWND hDlg, DWORD d, const TCHAR *path, int type)
+static void addromfiles (UAEREG *fkey, HWND hDlg, DWORD d, const TCHAR *path, int type1, int type2)
 {
        int idx;
        TCHAR tmp[MAX_DPATH];
@@ -8425,13 +8541,19 @@ static void addromfiles (UAEREG *fkey, HWND hDlg, DWORD d, const TCHAR *path, in
                        }
                        if (idx2 >= 0) {
                                struct romdata *rd = getromdatabyidgroup (idx2, group, subitem);
-                               if (rd && ((((rd->type & ROMTYPE_GROUP_MASK) & (type & ROMTYPE_GROUP_MASK)) && ((rd->type & ROMTYPE_SUB_MASK) == (type & ROMTYPE_SUB_MASK) || !(type & ROMTYPE_SUB_MASK))) ||
-                                       (rd->type & type) == ROMTYPE_NONE)) {
-                                       getromname (rd, tmp);
-                                       if (SendDlgItemMessage (hDlg, d, CB_FINDSTRING, (WPARAM)-1, (LPARAM)tmp) < 0)
-                                               SendDlgItemMessage(hDlg, d, CB_ADDSTRING, 0, (LPARAM)tmp);
-                                       if (rd == rdx)
-                                               _tcscpy (seltmp, tmp);
+                               for (int i = 0; i < 2; i++) {
+                                       int type = i ? type2 : type1;
+                                       if (type) {
+                                               if (rd && ((((rd->type & ROMTYPE_GROUP_MASK) & (type & ROMTYPE_GROUP_MASK)) && ((rd->type & ROMTYPE_SUB_MASK) == (type & ROMTYPE_SUB_MASK) || !(type & ROMTYPE_SUB_MASK))) ||
+                                                       (rd->type & type) == ROMTYPE_NONE)) {
+                                                       getromname (rd, tmp);
+                                                       if (SendDlgItemMessage (hDlg, d, CB_FINDSTRING, (WPARAM)-1, (LPARAM)tmp) < 0)
+                                                               SendDlgItemMessage(hDlg, d, CB_ADDSTRING, 0, (LPARAM)tmp);
+                                                       if (rd == rdx)
+                                                               _tcscpy (seltmp, tmp);
+                                                       break;
+                                               }
+                                       }
                                }
                        }
                }
@@ -8480,15 +8602,15 @@ static void values_to_kickstartdlg (HWND hDlg)
        fkey = regcreatetree (NULL, _T("DetectedROMs"));
        load_keyring(&workprefs, NULL);
        addromfiles (fkey, hDlg, IDC_ROMFILE, workprefs.romfile,
-               ROMTYPE_KICK | ROMTYPE_KICKCD32);
+               ROMTYPE_KICK | ROMTYPE_KICKCD32, 0);
        addromfiles (fkey, hDlg, IDC_ROMFILE2, workprefs.romextfile,
-               ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV | ROMTYPE_ARCADIABIOS);
+               ROMTYPE_EXTCD32 | ROMTYPE_EXTCDTV | ROMTYPE_ARCADIABIOS, 0);
        addromfiles (fkey, hDlg, IDC_CARTFILE, workprefs.cartfile,
-               ROMTYPE_FREEZER | ROMTYPE_ARCADIAGAME | ROMTYPE_CD32CART);
+               ROMTYPE_FREEZER | ROMTYPE_ARCADIAGAME | ROMTYPE_CD32CART, 0);
        addromfiles (fkey, hDlg, IDC_SCSIROMFILE, scsiromdata[scsiromselected].name,
-               scsiromdata[scsiromselected].mask);
+               scsiromdata[scsiromselected].mask, 0);
        addromfiles(fkey, hDlg, IDC_CPUBOARDROMFILE, workprefs.acceleratorromfile,
-               ROMTYPE_CPUBOARD);
+               ROMTYPE_CPUBOARD, ROMTYPE_GVPS2);
        regclosetree(fkey);
 
        SetDlgItemText(hDlg, IDC_FLASHFILE, workprefs.flashfile);
@@ -8634,7 +8756,7 @@ static INT_PTR CALLBACK KickstartDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP
                                        UAEREG *fkey = regcreatetree (NULL, _T("DetectedROMs"));
                                        scsiromselected = val;
                                        addromfiles (fkey, hDlg, IDC_SCSIROMFILE, scsiromdata[scsiromselected].name,
-                                               scsiromdata[scsiromselected].mask);
+                                               scsiromdata[scsiromselected].mask, 0);
                                        regclosetree(fkey);
                                }
                                break;
@@ -10360,6 +10482,12 @@ static void inithdcontroller (HWND hDlg, int ctype, int devtype)
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("IDE (Auto)"));
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Gayle/A4000 IDE"));
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("GVP A3001 IDE"));
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("AlfaPower/AT-Bus 2008 IDE"));
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("AlfaPower/AT-Bus 2008 #2 IDE"));
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Apollo IDE"));
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Apollo #2 IDE"));
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Masoboshi IDE"));
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Masoboshi #2 IDE"));
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("SCSI (Auto)"));
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("A590/A2091 SCSI"));
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("A590/A2091 #2 SCSI"));
@@ -10371,6 +10499,10 @@ static void inithdcontroller (HWND hDlg, int ctype, int devtype)
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Fastlane #2 SCSI"));
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Oktagon 2008 SCSI"));
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Oktagon 2008 #2 SCSI"));
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Apollo SCSI"));
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Apollo #2 SCSI"));
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Masoboshi SCSI"));
+       SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("Masoboshi #2 SCSI"));
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("A3000 SCSI"));
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("A4000T SCSI"));
        SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER, CB_ADDSTRING, 0, (LPARAM)_T("CDTV SCSI"));
@@ -10667,7 +10799,10 @@ static INT_PTR CALLBACK CDDriveSettingsProc (HWND hDlg, UINT msg, WPARAM wParam,
        case WM_INITDIALOG:
                recursive++;
                if (current_cddlg.ci.controller_type == HD_CONTROLLER_TYPE_UAE)
-                       current_cddlg.ci.controller_type = (cfgfile_board_enabled(&workprefs.a2091rom) || cfgfile_board_enabled(&workprefs.gvprom) || cfgfile_board_enabled(&workprefs.a4091rom) || workprefs.cs_cdtvscsi || (workprefs.cs_mbdmac & 3)) ? HD_CONTROLLER_TYPE_SCSI_AUTO : HD_CONTROLLER_TYPE_IDE_AUTO;
+                       current_cddlg.ci.controller_type = (cfgfile_board_enabled(&workprefs.a2091rom) ||
+                       cfgfile_board_enabled(&workprefs.gvps2rom) || cfgfile_board_enabled(&workprefs.a4091rom) ||
+                       workprefs.cs_cdtvscsi ||
+                       (workprefs.cs_mbdmac & 3)) ? HD_CONTROLLER_TYPE_SCSI_AUTO : HD_CONTROLLER_TYPE_IDE_AUTO;
                inithdcontroller(hDlg, current_cddlg.ci.controller_type, UAEDEV_CD);
                SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_SETCURSEL, current_cddlg.ci.controller_unit, 0);
                InitializeListView (hDlg);
index 836b0c4e6849a43a31875be78f466cfa7a7298e7..8587d383f46f96fee91360dbf9a62b7086cb967a 100644 (file)
     <ClCompile Include="..\..\archivers\lzx\unlzx.cpp" />
     <ClCompile Include="..\..\archivers\mp2\kjmp2.cpp" />
     <ClCompile Include="..\..\archivers\wrp\warp.cpp" />
+    <ClCompile Include="..\..\archivers\zip\ioapi.cpp" />
     <ClCompile Include="..\..\archivers\zip\unzip.cpp" />
+    <ClCompile Include="..\..\archivers\zip\zip.cpp" />
     <ClCompile Include="..\..\aros.rom.cpp" />
     <ClCompile Include="..\..\calc.cpp" />
     <ClCompile Include="..\..\cd32_fmv_genlock.cpp" />
index 142b59334737f1955b1891086152f5a1fd882be2..9a9d9bfe7ea76cfcb128a8635acc897d721c7921 100644 (file)
     <ClCompile Include="..\..\devices.cpp">
       <Filter>common</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\archivers\zip\zip.cpp">
+      <Filter>unpackers\zip</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\archivers\zip\ioapi.cpp">
+      <Filter>unpackers\zip</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\resources\35floppy.ico">
index 418ccdc7ea1fc0e4eb7b03335e0569175d903209..d96ae82b236b929a3bc5053232171b74884f647c 100644 (file)
@@ -1,4 +1,60 @@
 
+Beta 7:
+
+- Fixed infinite recursion (and stack overflow) when pause when uncaptered is enabled and display mode changes.
+- Added AlfaPower/AT-BUS 508/2008/AlfaPower Plus IDE controller.
+- Very simple low level SCSI emulator added to support Apollo software bit-banging SCSI.
+- Added Apollo IDE/SCSI board (AT500/AT2008) and Apollo 1240/1260 accelerator boards with SCSI.
+- Added GVP Series I SCSI controller.
+- Added GVP A530 accelerator. Uses same boot ROM as GVP Series II SCSI controllers. (Uses GVP #2 SCSI slot)
+- Added Masoboshi MC-702 IDE+SCSI controller.
+- Toccata CD audio (AUX1) volume control added.
+- Another Restart related crash fix.
+- Added "framecounter" float shader variable.
+- Paths panel Save All button now creates zip file that contains winuaebootlog.txt, winuaelog.txt and config file.
+- Quickstart A1200 + accelerator board, A500+ and A600 with expansion never had RTC. (Wrong order of functions..)
+- Possible clock sync option small stability improvement.
+- Fixed memory corruption if directory harddrive with empty name was selected.
+
+SCSI/IDE controller notes:
+
+GVP Series I:
+- Not true DMA, DMA transfers from WD to/from onboard SRAM buffer. CPU needed to read/write buffer ram.
+- Driver (scsidev.device) is very old and has (many?) limits, for example only OFS and FFS partitions mount correctly.
+
+AlfaPower/AT-Bus 508/2008/AlfaPower Plus:
+- AlfaPower: no hardware interrupt (!!), AlfaPower Plus implements interrupt support.
+- v6.10 ROM (Last that works with non-Plus hardware?) and v8.3 that requires Plus.
+
+Apollo:
+- All Apollo variants seems to have identical SCSI hardware. (Accelerators and 500/2000)
+- SCSI is working. IDE is not fully tested, only AT500/AT2000 have full IDE driver. For some reason
+  Apollo 1240/1260 driver still have short "is there any IDE drives" detection code remaining.
+- "Software" SCSI, hardware can only do bus arbitration in hardware, everything else is done by bit-banging
+  SCSI IO lines. Both SCSI and IDE also use non-DMA data transfers.
+- 128k Apollo ROMs (68060 f00000 ROM code and SCSI driver) are currrently supported. Non-accelerator
+  (AT500/AT2000) ROMs don't seem to be available = can't test IDE emulation.
+- 128k v5.60 ROM added. Seems to be last 1240/1260 ROM with SCSI.
+
+Masoboshi:
+- Unusual design, SCSI supports both PIO and DMA, software selectable.
+- IDE and SCSI in non-DMA mode working.
+- SCSI writes are not working correctly, do not use! DMA controller not yet emulated.
+- "2.201" (device version) boot ROM added. ROM image does not have any version numbers or dates.
+- IDE driver uses CHS addressing and seems to have problems with 2G drives, actual limit may be smallewr.
+  It tries to access first unavailable block number at the end of drive. (Driver flashes red background
+  color if drive returns error status)
+
+Most popular SCSI and IDE controllers are now implemented.
+Remaining IDE boards that I'd like to support:
+- Roctec RocHard (Need boot ROM)
+- AdIDE 40/44 (Need boot ROM)
+Remaining SCSI boards are 5380/53c80 based boards that need chip emulation first:
+- All SupraDrives.
+- Trumpcard 500/2000
+
+Perhaps others too. As long as at least one boot ROM is found for unsupported boards.
+
 Beta 6:
 
 - b5 input device update fix, changing to any keyboard layout didn't reset "remembered" device name.