From: Toni Wilen Date: Thu, 18 Jun 2015 17:37:13 +0000 (+0300) Subject: Misc updates. X-Git-Tag: 3200~177 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=2b55900d8ea71b909735ab32e2924a3688865e7c;p=francis%2Fwinuae.git Misc updates. --- diff --git a/debug.cpp b/debug.cpp index d868c3c7..6048d20a 100644 --- a/debug.cpp +++ b/debug.cpp @@ -39,6 +39,7 @@ #include "cpummu.h" #include "cpummu030.h" #include "ar.h" +#include "pci.h" #include "ppc/ppcd.h" #include "uae/ppc.h" @@ -3089,6 +3090,7 @@ static void memory_map_dump_3(UaeMemoryMap *map, int log) a1 = a2; } } + pci_dump(log); currprefs.illegal_mem = imold; } diff --git a/include/options.h b/include/options.h index 80ea6597..988765c3 100644 --- a/include/options.h +++ b/include/options.h @@ -12,7 +12,7 @@ #define UAEMAJOR 3 #define UAEMINOR 1 -#define UAESUBREV 0 +#define UAESUBREV 1 typedef enum { KBD_LANG_US, KBD_LANG_DK, KBD_LANG_DE, KBD_LANG_SE, KBD_LANG_FR, KBD_LANG_IT, KBD_LANG_ES } KbdLang; @@ -426,6 +426,8 @@ struct uae_prefs { unsigned int chipset_mask; bool ntscmode; bool genlock; + int genlock_image; + TCHAR genlock_image_file[MAX_DPATH]; int monitoremu; double chipset_refreshrate; struct chipset_refresh cr[MAX_CHIPSET_REFRESH + 2]; @@ -523,6 +525,7 @@ struct uae_prefs { TCHAR prtname[256]; TCHAR sername[256]; TCHAR a2065name[MAX_DPATH]; + TCHAR ne2000pciname[MAX_DPATH]; TCHAR picassoivromfile[MAX_DPATH]; struct cdslot cdslots[MAX_TOTAL_SCSI_DEVICES]; TCHAR quitstatefile[MAX_DPATH]; diff --git a/main.cpp b/main.cpp index 3ea9c0da..e4f6e304 100644 --- a/main.cpp +++ b/main.cpp @@ -192,7 +192,7 @@ void fixup_prefs_dimensions (struct uae_prefs *prefs) } if (i == 0) { if (prefs->gf[i].gfx_filter == 0 && prefs->monitoremu) { - error_log(_T("A2024 and Graffiti require at least null filter enabled.")); + error_log(_T("Display port adapter emulation require at least null filter enabled.")); prefs->gf[i].gfx_filter = 1; } if (prefs->gf[i].gfx_filter == 0 && prefs->cs_cd32fmv) { diff --git a/od-win32/genlinetoscr_msvc/genlinetoscr_msvc.vcxproj b/od-win32/genlinetoscr_msvc/genlinetoscr_msvc.vcxproj index c66f9c80..c953fd1c 100644 --- a/od-win32/genlinetoscr_msvc/genlinetoscr_msvc.vcxproj +++ b/od-win32/genlinetoscr_msvc/genlinetoscr_msvc.vcxproj @@ -41,7 +41,7 @@ Application Unicode true - v120 + v140 Application diff --git a/od-win32/resources/resource.h b/od-win32/resources/resource.h index 285ebc22..bca8fbcb 100644 --- a/od-win32/resources/resource.h +++ b/od-win32/resources/resource.h @@ -854,6 +854,7 @@ #define IDC_INPUTAMIGACNT 1616 #define IDC_FILTERHZ 1616 #define IDC_SAMPLERIPPER_ACTIVATED 1616 +#define IDC_NE2000 1616 #define IDC_AVIOUTPUT_BORDER_TRIM 1617 #define IDC_FILTERVZ 1617 #define IDC_AVIOUTPUT_AUDIO_STATIC 1618 @@ -1039,6 +1040,7 @@ #define IDC_SOUND_DS 1713 #define IDC_MONITOREMU 1713 #define IDC_CS_COMPATIBLE 1714 +#define IDC_GENLOCKMODE 1714 #define IDC_CS_RAMSEYREV 1715 #define IDC_SOUND_WASAPI 1715 #define IDC_CS_KSMIRROR_E0 1716 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index a59eea2c..39bcab67 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -672,11 +672,11 @@ BEGIN PUSHBUTTON "Cancel",IDCANCEL,201,57,48,15 END -IDD_CHIPSET DIALOGEX 0, 0, 396, 169 +IDD_CHIPSET DIALOGEX 0, 0, 396, 192 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - GROUPBOX "Chipset",IDC_STATIC,1,0,212,111 + GROUPBOX "Chipset",IDC_STATIC,1,0,212,136 CONTROL "OCS [] Original chipset. A1000 and most A500s.",IDC_OCS, "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,15,88,10 CONTROL "ECS Agnus [] Enhanced chipset (ECS Agnus chip only). CDTV and later A500 and A2000 hardware revisions.",IDC_ECS_AGNUS, @@ -693,24 +693,26 @@ BEGIN "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,14,69,170,10 RTEXT "Chipset Extra:",IDC_STATIC,72,89,71,15,SS_CENTERIMAGE COMBOBOX IDC_CS_EXT,148,90,49,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Options",IDC_STATIC,221,0,173,111 + GROUPBOX "Options",IDC_STATIC,221,0,173,137 CONTROL "Immediate Blitter [] Faster but less compatible blitter emulation.",IDC_BLITIMM, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,16,150,10 CONTROL "Wait for Blitter [] Compatibility hack for programs that don't wait for the blitter correctly, causing graphics corruption if CPU is too fast.",IDC_BLITWAIT, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,29,150,10 CONTROL "Genlock connected [] Allow boot sequence to detect genlock. Genlock is not emulated.",IDC_GENLOCK, "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,234,42,150,10 - CTEXT "Video port display hardware:",IDC_STATIC,228,59,117,15,SS_CENTERIMAGE - COMBOBOX IDC_MONITOREMU,238,78,147,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Collision Level",IDC_STATIC,1,116,393,48 + LTEXT "Video port display hardware:",IDC_STATIC,237,97,117,15,SS_CENTERIMAGE + COMBOBOX IDC_MONITOREMU,237,115,147,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Collision Level",IDC_STATIC,1,141,393,48 CONTROL "None [] Collision hardware emulation disabled.",IDC_COLLISION0, - "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,47,132,101,10 + "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,47,157,101,10 CONTROL "Sprites only [] Emulate only sprite vs. sprite collisions.",IDC_COLLISION1, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,47,147,101,10 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,47,172,101,10 CONTROL "Sprites and Sprites vs. Playfield [] Recommended collision emulation level.",IDC_COLLISION2, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,182,132,181,10 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,182,157,181,10 CONTROL "Full [] 100% collision hardware emulation. Only very few games need this option. Slowest.",IDC_COLLISION3, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,182,147,181,10 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,182,172,181,10 + LTEXT "Genlock emulation mode",IDC_STATIC,237,59,117,15,SS_CENTERIMAGE + COMBOBOX IDC_GENLOCKMODE,237,77,147,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP END IDD_CHIPSET2 DIALOGEX 0, 0, 396, 305 @@ -1108,7 +1110,7 @@ BEGIN CTEXT "Enter address",IDC_DBG_ADDRINPUTTXT,20,1,100,10,SS_CENTERIMAGE | WS_TABSTOP END -IDD_EXPANSION DIALOGEX 0, 0, 396, 289 +IDD_EXPANSION DIALOGEX 0, 0, 396, 302 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN @@ -1139,22 +1141,24 @@ BEGIN COMBOBOX IDC_RTG_BUFFERCNT,153,162,84,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP CTEXT "Aspect ratio:",IDC_STATIC,282,149,83,10,SS_CENTERIMAGE COMBOBOX IDC_RTG_SCALE_ASPECTRATIO,282,162,84,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Miscellaneous Expansions",IDC_STATIC,1,197,172,87 + GROUPBOX "Miscellaneous Expansions",IDC_STATIC,1,197,172,100 CONTROL "Catweasel Z2 emulation [] Catweasel MK2 Zorro II card emulation. Physical Windows compatible Catweasel card and drivers required.",IDC_CATWEASEL, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,216,147,11 CONTROL "uaescsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,229,147,11 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/CD audio mix",IDC_CS_TOCCATAMIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,267,151,11 - GROUPBOX "Network",IDC_STATIC,181,197,213,86 + GROUPBOX "Network",IDC_STATIC,181,197,213,101 CONTROL "bsdsocket.library [] bsdsocket network library emulation.",IDC_SOCKETS, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,215,187,11 CONTROL "uaenet.device [] Sana 2 compatible network device emulation.",IDC_SANA2, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,228,187,11 CONTROL "A2065 Z2 [] A2065 Ethernet Zorro II card emulation.",IDC_A2065, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,241,187,11 - COMBOBOX IDC_NETDEVICE,202,256,178,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - CONTROL "Include host SCSI devices",IDC_CS_SCSIMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,271,147,11 + COMBOBOX IDC_NETDEVICE,202,269,178,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "Include host SCSI devices",IDC_CS_SCSIMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,284,147,11 + CONTROL "Realtek 8029 PCI [] Realtek 8029 PCI NIC emulation",IDC_NE2000, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,255,187,11 END IDD_INPUTMAP DIALOGEX 0, 0, 421, 341 @@ -1246,8 +1250,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 3,1,0,0 - PRODUCTVERSION 3,1,0,0 + FILEVERSION 3,1,1,0 + PRODUCTVERSION 3,1,1,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -1263,12 +1267,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "WinUAE" - VALUE "FileVersion", "3.1.0.0" + VALUE "FileVersion", "3.1.1.0" VALUE "InternalName", "WinUAE" VALUE "LegalCopyright", "© 1996-2015 under the GNU Public License (GPL)" VALUE "OriginalFilename", "WinUAE.exe" VALUE "ProductName", "WinUAE" - VALUE "ProductVersion", "3.1.0.0" + VALUE "ProductVersion", "3.1.1.0" END END BLOCK "VarFileInfo" @@ -1466,6 +1470,7 @@ BEGIN IDD_CHIPSET, DIALOG BEGIN + BOTTOMMARGIN, 169 END IDD_CHIPSET2, DIALOG @@ -1530,6 +1535,7 @@ BEGIN IDD_EXPANSION, DIALOG BEGIN + BOTTOMMARGIN, 289 END IDD_INPUTMAP, DIALOG diff --git a/od-win32/sounddep/sound.cpp b/od-win32/sounddep/sound.cpp index c85c4545..9a75c2a8 100644 --- a/od-win32/sounddep/sound.cpp +++ b/od-win32/sounddep/sound.cpp @@ -1084,7 +1084,8 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive) { HRESULT hr; struct sound_dp *s = sd->data; - WAVEFORMATEX *pwfx, *pwfx_saved; + WAVEFORMATEX *pwfx = NULL; + WAVEFORMATEX *pwfx_saved = NULL; WAVEFORMATEXTENSIBLE wavfmt; int final; LPWSTR name = NULL; @@ -1143,7 +1144,6 @@ static int open_audio_wasapi (struct sound_data *sd, int index, int exclusive) final = 0; rncnt = 0; - pwfx_saved = NULL; for (;;) { if (sd->channels == 6) { diff --git a/od-win32/sysconfig.h b/od-win32/sysconfig.h index 36a6954d..30045dbb 100644 --- a/od-win32/sysconfig.h +++ b/od-win32/sysconfig.h @@ -93,6 +93,7 @@ #define WITH_PPC #define WITH_QEMU_CPU #define WITH_TOCCATA +#define WITH_PCI #else diff --git a/od-win32/win32.cpp b/od-win32/win32.cpp index e20bb657..64601427 100644 --- a/od-win32/win32.cpp +++ b/od-win32/win32.cpp @@ -5333,10 +5333,14 @@ static int parseargs (const TCHAR *argx, const TCHAR *np, const TCHAR *np2) log_a2065 = 1; return 1; } - if (!_tcscmp (arg, _T("a2065log2"))) { + if (!_tcscmp(arg, _T("a2065log2"))) { log_a2065 = 2; return 1; } + if (!_tcscmp(arg, _T("a2065log3"))) { + log_a2065 = 3; + return 1; + } if (!_tcscmp (arg, _T("a2065_promiscuous"))) { a2065_promiscuous = 1; return 1; diff --git a/od-win32/win32.h b/od-win32/win32.h index 6abc68bc..4482c96c 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -15,17 +15,17 @@ #define GETBDM(x) (((x) - ((x / 10000) * 10000)) / 100) #define GETBDD(x) ((x) % 100) -#define WINUAEPUBLICBETA 0 +#define WINUAEPUBLICBETA 1 #define LANG_DLL 1 #define LANG_DLL_FULL_VERSION_MATCH 1 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("") +#define WINUAEBETA _T("0") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2015, 6, 7) +#define WINUAEDATE MAKEBD(2015, 6, 18) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32gfx.cpp b/od-win32/win32gfx.cpp index fb2e377c..fbdb43d6 100644 --- a/od-win32/win32gfx.cpp +++ b/od-win32/win32gfx.cpp @@ -1893,6 +1893,8 @@ int check_prefs_changed_gfx (void) c |= currprefs.gfx_iscanlines != changed_prefs.gfx_iscanlines ? (2 | 8) : 0; c |= currprefs.gfx_pscanlines != changed_prefs.gfx_pscanlines ? (2 | 8) : 0; c |= currprefs.monitoremu != changed_prefs.monitoremu ? (2 | 8) : 0; + c |= currprefs.genlock_image != changed_prefs.genlock_image ? (2 | 8) : 0; + c |= currprefs.genlock != changed_prefs.genlock ? (2 | 8) : 0; c |= currprefs.gfx_lores_mode != changed_prefs.gfx_lores_mode ? (2 | 8) : 0; c |= currprefs.gfx_scandoubler != changed_prefs.gfx_scandoubler ? (2 | 8) : 0; @@ -1973,6 +1975,8 @@ int check_prefs_changed_gfx (void) currprefs.gfx_iscanlines = changed_prefs.gfx_iscanlines; currprefs.gfx_pscanlines = changed_prefs.gfx_pscanlines; currprefs.monitoremu = changed_prefs.monitoremu; + currprefs.genlock_image = changed_prefs.genlock_image; + currprefs.genlock = changed_prefs.genlock; currprefs.gfx_lores_mode = changed_prefs.gfx_lores_mode; currprefs.gfx_scandoubler = changed_prefs.gfx_scandoubler; @@ -4307,7 +4311,7 @@ static BOOL doInit (void) allocsoftbuffer (_T("draw"), &gfxvidinfo.drawbuffer, currentmode->flags, 1600, 1280, currentmode->current_depth); } - if (currprefs.monitoremu || currprefs.cs_cd32fmv) { + if (currprefs.monitoremu || currprefs.cs_cd32fmv || (currprefs.genlock && currprefs.genlock_image)) { allocsoftbuffer (_T("monemu"), &gfxvidinfo.tempbuffer, currentmode->flags, currentmode->amiga_width > 1024 ? currentmode->amiga_width : 1024, currentmode->amiga_height > 1024 ? currentmode->amiga_height : 1024, diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index d4ca5556..a8b16d60 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -6320,7 +6320,6 @@ static void enable_for_chipsetdlg (HWND hDlg) #if !defined (CPUEMU_13) ew (hDlg, IDC_CYCLEEXACT, FALSE); #endif - ew (hDlg, IDC_GENLOCK, full_property_sheet); #if 0 ew (hDlg, IDC_BLITIMM, enable); if (enable == FALSE) { @@ -6334,6 +6333,7 @@ static void enable_for_chipsetdlg (HWND hDlg) } ew (hDlg, IDC_BLITWAIT, workprefs.immediate_blits ? FALSE : TRUE); ew (hDlg, IDC_CS_EXT, workprefs.cs_compatible ? TRUE : FALSE); + ew(hDlg, IDC_GENLOCKMODE, workprefs.genlock ? TRUE : FALSE); } static const int fakerefreshrates[] = { 50, 60, 100, 120, 0 }; @@ -7266,8 +7266,8 @@ static void values_to_chipsetdlg (HWND hDlg) CheckRadioButton (hDlg, IDC_COLLISION0, IDC_COLLISION3, IDC_COLLISION0 + workprefs.collision_level); CheckDlgButton (hDlg, IDC_CYCLEEXACT, workprefs.cpu_cycle_exact); SendDlgItemMessage (hDlg, IDC_CS_EXT, CB_SETCURSEL, workprefs.cs_compatible, 0); - SendDlgItemMessage (hDlg, IDC_MONITOREMU, CB_SETCURSEL, workprefs.monitoremu, 0); - + SendDlgItemMessage(hDlg, IDC_MONITOREMU, CB_SETCURSEL, workprefs.monitoremu, 0); + SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_SETCURSEL, workprefs.genlock_image, 0); } static void values_from_chipsetdlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) @@ -7312,6 +7312,10 @@ static void values_from_chipsetdlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l nn = SendDlgItemMessage (hDlg, IDC_MONITOREMU, CB_GETCURSEL, 0, 0); if (nn != CB_ERR) workprefs.monitoremu = nn; + + nn = SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_GETCURSEL, 0, 0); + if (nn != CB_ERR) + workprefs.genlock_image = nn; } static INT_PTR CALLBACK ChipsetDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) @@ -7343,6 +7347,11 @@ static INT_PTR CALLBACK ChipsetDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPAR SendDlgItemMessage (hDlg, IDC_CS_EXT, CB_ADDSTRING, 0, (LPARAM)_T("A4000T")); SendDlgItemMessage (hDlg, IDC_CS_EXT, CB_ADDSTRING, 0, (LPARAM)_T("Velvet")); + SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_RESETCONTENT, 0, 0); + SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_ADDSTRING, 0, (LPARAM) _T("-")); + SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_ADDSTRING, 0, (LPARAM) _T("Noise")); + SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_ADDSTRING, 0, (LPARAM) _T("Test card")); + SendDlgItemMessage (hDlg, IDC_MONITOREMU, CB_RESETCONTENT, 0, 0); SendDlgItemMessage (hDlg, IDC_MONITOREMU, CB_ADDSTRING, 0, (LPARAM)_T("-")); WIN32GUI_LoadUIString(IDS_AUTODETECT, buffer, sizeof buffer / sizeof (TCHAR)); @@ -8100,7 +8109,7 @@ static void expansion_net (HWND hDlg) SendDlgItemMessage (hDlg, IDC_NETDEVICE, CB_RESETCONTENT, 0, 0); WIN32GUI_LoadUIString (IDS_NETDISCONNECTED, tmp, sizeof tmp / sizeof (TCHAR)); SendDlgItemMessage (hDlg, IDC_NETDEVICE, CB_ADDSTRING, 0, (LPARAM)tmp); - if (!_tcsicmp (workprefs.a2065name, _T("none"))) { + if (!_tcsicmp (workprefs.a2065name, _T("none")) && !_tcsicmp(workprefs.ne2000pciname, _T("none"))) { SendDlgItemMessage (hDlg, IDC_NETDEVICE, CB_SETCURSEL, 0, 0); notset = false; } @@ -8108,11 +8117,17 @@ static void expansion_net (HWND hDlg) for (i = 0; ndd && i < MAX_TOTAL_NET_DEVICES; i++) { if (ndd[i]) { TCHAR mac[20]; - _stprintf (mac, _T("%02X:%02X:%02X:%02X:%02X:%02X"), - ndd[i]->mac[0], ndd[i]->mac[1], ndd[i]->mac[2], ndd[i]->mac[3], ndd[i]->mac[4], ndd[i]->mac[5]); + if (ndd[i]->type == UAENET_SLIRP || ndd[i]->type == UAENET_SLIRP_INBOUND) { + _stprintf(mac, _T("xx:xx:xx:%02X:%02X:%02X"), + ndd[i]->mac[3], ndd[i]->mac[4], ndd[i]->mac[5]); + } else { + _stprintf (mac, _T("2X:%02X:%02X:%02X:%02X:%02X"), + ndd[i]->mac[0], ndd[i]->mac[1], ndd[i]->mac[2], ndd[i]->mac[3], ndd[i]->mac[4], ndd[i]->mac[5]); + } _stprintf (tmp, _T("%s %s"), mac, ndd[i]->desc); SendDlgItemMessage (hDlg, IDC_NETDEVICE, CB_ADDSTRING, 0, (LPARAM)tmp); - if (!_tcsicmp (workprefs.a2065name, mac) || !_tcsicmp (workprefs.a2065name, ndd[i]->name)) { + if (!_tcsicmp (workprefs.a2065name, mac) || !_tcsicmp (workprefs.a2065name, ndd[i]->name) || + !_tcsicmp(workprefs.ne2000pciname, mac) || !_tcsicmp(workprefs.ne2000pciname, ndd[i]->name)) { SendDlgItemMessage (hDlg, IDC_NETDEVICE, CB_SETCURSEL, cnt, 0); notset = false; } @@ -8137,7 +8152,7 @@ static void enable_for_expansiondlg (HWND hDlg) ew (hDlg, IDC_NETDEVICE, en); ew (hDlg, IDC_SANA2, en); ew (hDlg, IDC_A2065, en); - ew (hDlg, IDC_NETDEVICE, en && workprefs.a2065name[0]); + ew (hDlg, IDC_NETDEVICE, en && (workprefs.a2065name[0] || workprefs.ne2000pciname[0])); int rtg = workprefs.rtgmem_size && full_property_sheet && workprefs.rtgmem_type < GFXBOARD_HARDWARE; int rtg2 = workprefs.rtgmem_size || workprefs.rtgmem_type >= GFXBOARD_HARDWARE; @@ -8180,7 +8195,8 @@ static void values_to_expansiondlg (HWND hDlg) CheckDlgButton (hDlg, IDC_CATWEASEL, workprefs.catweasel); CheckDlgButton (hDlg, IDC_SCSIDEVICE, workprefs.scsi == 1); CheckDlgButton (hDlg, IDC_SANA2, workprefs.sana2); - CheckDlgButton (hDlg, IDC_A2065, workprefs.a2065name[0] ? 1 : 0); + CheckDlgButton(hDlg, IDC_A2065, workprefs.a2065name[0] ? 1 : 0); + CheckDlgButton(hDlg, IDC_NE2000, workprefs.ne2000pciname[0] ? 1 : 0); CheckDlgButton(hDlg, IDC_CS_CD32FMV, workprefs.cs_cd32fmv); CheckDlgButton(hDlg, IDC_CS_TOCCATA, workprefs.sound_toccata); CheckDlgButton(hDlg, IDC_CS_TOCCATAMIXER, workprefs.sound_toccata_mixer); @@ -8337,16 +8353,29 @@ static INT_PTR CALLBACK ExpansionDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP workprefs.sana2 = ischecked (hDlg, IDC_SANA2); break; case IDC_A2065: - if (ischecked (hDlg, IDC_A2065)) { - _tcscpy (workprefs.a2065name, _T("none")); - expansion_net (hDlg); - enable_for_expansiondlg (hDlg); - } else { - ew (hDlg, IDC_NETDEVICE, FALSE); - workprefs.a2065name[0] = 0; - enable_for_expansiondlg (hDlg); - } - break; + if (ischecked(hDlg, IDC_A2065)) { + _tcscpy(workprefs.a2065name, _T("none")); + expansion_net(hDlg); + enable_for_expansiondlg(hDlg); + } else { + if (!workprefs.ne2000pciname[0]) + ew(hDlg, IDC_NETDEVICE, FALSE); + workprefs.a2065name[0] = 0; + enable_for_expansiondlg(hDlg); + } + break; + case IDC_NE2000: + if (ischecked(hDlg, IDC_NE2000)) { + _tcscpy(workprefs.ne2000pciname, _T("none")); + expansion_net(hDlg); + enable_for_expansiondlg(hDlg); + } else { + if (!workprefs.a2065name[0]) + ew(hDlg, IDC_NETDEVICE, FALSE); + workprefs.ne2000pciname[0] = 0; + enable_for_expansiondlg(hDlg); + } + break; case IDC_CATWEASEL: workprefs.catweasel = ischecked (hDlg, IDC_CATWEASEL) ? -1 : 0; break; @@ -8478,12 +8507,17 @@ static INT_PTR CALLBACK ExpansionDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP case IDC_NETDEVICE: v = SendDlgItemMessage (hDlg, IDC_NETDEVICE, CB_GETCURSEL, 0, 0L); if (v != CB_ERR) { + const TCHAR *s; if (v == 0) { - _tcscpy (workprefs.a2065name, _T("none")); + s = _T("none"); } else if (ndd) { v--; - _tcscpy (workprefs.a2065name, ndd[v]->name); + s = ndd[v]->name; } + if (ischecked(hDlg, IDC_A2065)) + _tcscpy(workprefs.a2065name, s); + if (ischecked(hDlg, IDC_NE2000)) + _tcscpy(workprefs.ne2000pciname, s); } break; @@ -8671,7 +8705,7 @@ static void addromfiles (UAEREG *fkey, HWND hDlg, DWORD d, const TCHAR *path, in 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)) { + (rd->type & type) == ROMTYPE_NONE || (rd->type & type) == ROMTYPE_NOT)) { getromname (rd, tmp); if (SendDlgItemMessage (hDlg, d, CB_FINDSTRING, (WPARAM)-1, (LPARAM)tmp) < 0) SendDlgItemMessage(hDlg, d, CB_ADDSTRING, 0, (LPARAM)tmp); @@ -8798,6 +8832,34 @@ static void values_from_kickstartdlg (HWND hDlg) } } +static void values_to_kickstartdlg_expansion_roms(HWND hDlg, UAEREG *fkey) +{ + int index; + bool keyallocated = false; + struct boardromconfig *brc; + + if (!fkey) { + fkey = regcreatetree(NULL, _T("DetectedROMs")); + keyallocated = true; + } + const struct expansionromtype *ert = &expansionroms[scsiromselected]; + int romtype = ert->romtype; + int romtype_extra = ert->romtype_extra; + + brc = get_device_rom(&workprefs, romtype, scsiromselectednum, &index); + if (brc && ert->subtypes) { + const struct expansionsubromtype *esrt = &ert->subtypes[brc->roms[index].subtype]; + if (esrt->romtype) { + romtype = esrt->romtype; + romtype_extra = 0; + } + } + addromfiles(fkey, hDlg, IDC_SCSIROMFILE, brc ? brc->roms[index].romfile : NULL, romtype, romtype_extra); + CheckDlgButton(hDlg, IDC_SCSIROMFILEAUTOBOOT, brc && brc->roms[index].autoboot_disabled); + if (keyallocated) + regclosetree(fkey); +} + static void values_to_kickstartdlg_expansion_settings(HWND hDlg) { int index; @@ -8853,10 +8915,7 @@ static void values_to_kickstartdlg (HWND hDlg) addromfiles (fkey, hDlg, IDC_CARTFILE, workprefs.cartfile, ROMTYPE_FREEZER | ROMTYPE_ARCADIAGAME | ROMTYPE_CD32CART, 0); - brc = get_device_rom(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum, &index); - addromfiles (fkey, hDlg, IDC_SCSIROMFILE, brc ? brc->roms[index].romfile : NULL, - expansionroms[scsiromselected].romtype, expansionroms[scsiromselected].romtype_extra); - CheckDlgButton(hDlg, IDC_SCSIROMFILEAUTOBOOT, brc && brc->roms[index].autoboot_disabled); + values_to_kickstartdlg_expansion_roms(hDlg, fkey); values_to_kickstartdlg_expansion_settings(hDlg); if (workprefs.cpuboard_type) { @@ -9051,12 +9110,16 @@ static INT_PTR CALLBACK KickstartDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP case IDC_CARTFILE: case IDC_SCSIROMFILE: case IDC_SCSIROMID: - case IDC_SCSIROMSUBSELECT: case IDC_CPUBOARDROMFILE: case IDC_CPUBOARDROMSUBSELECT: values_from_kickstartdlg (hDlg); values_to_kickstartdlg_expansion_settings(hDlg); break; + case IDC_SCSIROMSUBSELECT: + values_from_kickstartdlg(hDlg); + values_to_kickstartdlg_expansion_roms(hDlg, NULL); + values_to_kickstartdlg_expansion_settings(hDlg); + break; case IDC_SCSIROMSELECTNUM: case IDC_SCSIROMSELECT: val = SendDlgItemMessage (hDlg, IDC_SCSIROMSELECTNUM, CB_GETCURSEL, 0, 0); @@ -9064,15 +9127,9 @@ static INT_PTR CALLBACK KickstartDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP scsiromselectednum = val; val = gui_get_string_cursor(scsiromselect_table, hDlg, IDC_SCSIROMSELECT); if (val != CB_ERR) { - int index; - struct boardromconfig *brc; - UAEREG *fkey = regcreatetree (NULL, _T("DetectedROMs")); scsiromselected = val; - brc = get_device_rom(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum, &index); - addromfiles (fkey, hDlg, IDC_SCSIROMFILE, brc ? brc->roms[index].romfile : NULL, - expansionroms[scsiromselected].romtype, 0); + values_to_kickstartdlg_expansion_roms(hDlg, NULL); values_to_kickstartdlg_expansion_settings(hDlg); - regclosetree(fkey); values_to_kickstartdlg_sub(hDlg); } break; diff --git a/od-win32/winuae_msvc11/winuae_msvc.vcxproj b/od-win32/winuae_msvc11/winuae_msvc.vcxproj index 892c9b27..80eb2ebd 100644 --- a/od-win32/winuae_msvc11/winuae_msvc.vcxproj +++ b/od-win32/winuae_msvc11/winuae_msvc.vcxproj @@ -628,7 +628,7 @@ MultiThreaded false true - StreamingSIMDExtensions + NoExtensions Precise false false diff --git a/od-win32/winuae_msvc14/winuae_msvc.vcxproj b/od-win32/winuae_msvc14/winuae_msvc.vcxproj index 89f3aeef..ccc395e8 100644 --- a/od-win32/winuae_msvc14/winuae_msvc.vcxproj +++ b/od-win32/winuae_msvc14/winuae_msvc.vcxproj @@ -327,7 +327,7 @@ MultiThreaded false true - NoExtensions + StreamingSIMDExtensions2 Precise false false @@ -405,7 +405,7 @@ MultiThreaded false true - NotSet + StreamingSIMDExtensions2 Precise false false @@ -555,7 +555,7 @@ MultiThreaded false false - NotSet + StreamingSIMDExtensions2 Precise false false @@ -626,7 +626,7 @@ MultiThreaded false true - StreamingSIMDExtensions + StreamingSIMDExtensions2 Precise false false @@ -701,7 +701,7 @@ MultiThreaded false true - NotSet + StreamingSIMDExtensions2 Precise false false @@ -822,12 +822,14 @@ + + @@ -855,6 +857,7 @@ + diff --git a/od-win32/winuae_msvc14/winuae_msvc.vcxproj.filters b/od-win32/winuae_msvc14/winuae_msvc.vcxproj.filters index 9a9d9bfe..75e5cdc7 100644 --- a/od-win32/winuae_msvc14/winuae_msvc.vcxproj.filters +++ b/od-win32/winuae_msvc14/winuae_msvc.vcxproj.filters @@ -736,6 +736,15 @@ unpackers\zip + + common + + + common + + + qemu +