From 007555b6cbcc1b8b84725ad3141c8f2fb3939b72 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Mon, 1 Aug 2022 20:24:31 +0300 Subject: [PATCH] NVRAM path added (Arcade/CD32/CDTV) --- cfgfile.cpp | 6 +- include/uae.h | 18 +++-- od-win32/resources/resource.h | 4 +- od-win32/resources/winuae.rc | 83 +++++++++---------- od-win32/win32.cpp | 146 +++++++++++++++++++--------------- od-win32/win32gui.cpp | 73 +++++++++++------ rommgr.cpp | 6 +- 7 files changed, 191 insertions(+), 145 deletions(-) diff --git a/cfgfile.cpp b/cfgfile.cpp index 1ae8b314..a7b69a8d 100644 --- a/cfgfile.cpp +++ b/cfgfile.cpp @@ -8947,8 +8947,8 @@ static int bip_arcadia (struct uae_prefs *p, int config, int compa, int romcheck set_68000_compa (p, compa); p->cs_compatible = CP_A500; built_in_chipset_prefs (p); - fetch_datapath (p->flashfile, sizeof (p->flashfile) / sizeof (TCHAR)); - _tcscat (p->flashfile, _T("arcadia.nvr")); + fetch_nvrampath(p->flashfile, sizeof (p->flashfile) / sizeof (TCHAR)); + _tcscat(p->flashfile, _T("arcadia.nvr")); roms[0] = 5; roms[1] = 4; roms[2] = -1; @@ -8988,7 +8988,7 @@ static int bip_alg(struct uae_prefs* p, int config, int compa, int romcheck) set_68000_compa(p, compa); p->cs_compatible = CP_A500; built_in_chipset_prefs(p); - fetch_datapath(p->flashfile, sizeof(p->flashfile) / sizeof(TCHAR)); + fetch_nvrampath(p->flashfile, sizeof(p->flashfile) / sizeof(TCHAR)); _tcscat(p->flashfile, _T("alg.nvr")); roms[0] = 5; roms[1] = 4; diff --git a/include/uae.h b/include/uae.h index cfdb8ff1..94ef91bb 100644 --- a/include/uae.h +++ b/include/uae.h @@ -76,14 +76,16 @@ struct bstring { extern TCHAR *colormodes[]; extern int saveimageoriginalpath; extern void fetch_saveimagepath (TCHAR*, int, int); -extern void fetch_configurationpath (TCHAR *out, int size); -extern void fetch_luapath (TCHAR *out, int size); -extern void fetch_screenshotpath (TCHAR *out, int size); -extern void fetch_ripperpath (TCHAR *out, int size); -extern void fetch_statefilepath (TCHAR *out, int size); -extern void fetch_inputfilepath (TCHAR *out, int size); -extern void fetch_datapath (TCHAR *out, int size); -extern void fetch_rompath (TCHAR *out, int size); +extern void fetch_configurationpath(TCHAR *out, int size); +extern void fetch_nvrampath(TCHAR *out, int size); +extern void fetch_luapath(TCHAR *out, int size); +extern void fetch_screenshotpath(TCHAR *out, int size); +extern void fetch_ripperpath(TCHAR *out, int size); +extern void fetch_statefilepath(TCHAR *out, int size); +extern void fetch_inputfilepath(TCHAR *out, int size); +extern void fetch_datapath(TCHAR *out, int size); +extern void fetch_rompath(TCHAR *out, int size); +extern void fetch_videopath(TCHAR *out, int size); extern uae_u32 uaerand (void); extern uae_u32 uaesrand (uae_u32 seed); extern uae_u32 uaerandgetseed (void); diff --git a/od-win32/resources/resource.h b/od-win32/resources/resource.h index 61cb4538..9f0697f0 100644 --- a/od-win32/resources/resource.h +++ b/od-win32/resources/resource.h @@ -1037,12 +1037,14 @@ #define IDC_LOGOPEN 1681 #define IDC_CONFIGAUTO 1682 #define IDC_CD0Q_TYPE 1682 +#define IDC_PATHS_NVRAM 1682 #define IDC_DF0TEXTQ 1683 #define IDC_CONFIGNOLINK 1683 +#define IDC_PATHS_NVRAMS 1683 #define IDC_DF0WPQ 1684 -#define IDC_LOGOPEN2 1684 #define IDC_LOGSAVE 1684 #define IDC_EJECT0Q 1685 +#define IDC_PATHS_NVRAML 1685 #define IDC_DF1WPQ 1686 #define IDC_EJECT1Q 1687 #define IDC_DF1TEXTQ 1688 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index 39d19796..c036861d 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -1064,46 +1064,49 @@ IDD_PATHS DIALOGEX 0, 0, 396, 316 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN - LTEXT "System ROMs:",IDC_PATHS_ROML,3,8,138,8,SS_CENTERIMAGE - EDITTEXT IDC_PATHS_ROM,3,19,377,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_PATHS_ROMS,384,19,11,15 - CONTROL "Scan subfolders",IDC_PATHS_RECURSIVEROMS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,7,197,11 - LTEXT "Configuration files:",IDC_PATHS_CONFIGL,3,38,134,8,SS_CENTERIMAGE - EDITTEXT IDC_PATHS_CONFIG,3,50,377,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_PATHS_CONFIGS,384,49,11,15 - CONTROL "Cache Configuration files",IDC_PATHS_CONFIGCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,37,99,11 - LTEXT "Screenshots:",IDC_PATHS_SCREENSHOTL,3,68,143,8,SS_CENTERIMAGE - EDITTEXT IDC_PATHS_SCREENSHOT,3,79,377,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_PATHS_SCREENSHOTS,384,78,11,15 - LTEXT "State files:",IDC_PATHS_STATEFILEL,3,97,129,8,SS_CENTERIMAGE - EDITTEXT IDC_PATHS_SAVESTATE,3,108,377,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_PATHS_SAVESTATES,384,107,11,15 - LTEXT "Videos:",IDC_PATHS_AVIOUTPUTL,3,126,130,8,SS_CENTERIMAGE - EDITTEXT IDC_PATHS_AVIOUTPUT,3,137,377,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_PATHS_AVIOUTPUTS,384,136,11,15 - LTEXT "Saveimages:",IDC_PATHS_SAVEIMAGEL,3,155,129,8,SS_CENTERIMAGE - EDITTEXT IDC_PATHS_SAVEIMAGE,3,167,377,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_PATHS_SAVEIMAGES,384,166,11,15 + LTEXT "System ROMs:",IDC_PATHS_ROML,3,2,138,8,SS_CENTERIMAGE + EDITTEXT IDC_PATHS_ROM,3,13,377,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_ROMS,384,13,11,15 + CONTROL "Scan subfolders",IDC_PATHS_RECURSIVEROMS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,1,197,11 + LTEXT "Configuration files:",IDC_PATHS_CONFIGL,3,32,134,8,SS_CENTERIMAGE + EDITTEXT IDC_PATHS_CONFIG,3,44,377,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_CONFIGS,384,43,11,15 + CONTROL "Cache Configuration files",IDC_PATHS_CONFIGCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,31,99,11 + LTEXT "Screenshots:",IDC_PATHS_SCREENSHOTL,3,91,143,8,SS_CENTERIMAGE + EDITTEXT IDC_PATHS_SCREENSHOT,3,102,377,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_SCREENSHOTS,384,101,11,15 + LTEXT "State files:",IDC_PATHS_STATEFILEL,3,120,129,8,SS_CENTERIMAGE + EDITTEXT IDC_PATHS_SAVESTATE,3,131,377,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_SAVESTATES,384,130,11,15 + LTEXT "Videos:",IDC_PATHS_AVIOUTPUTL,3,149,130,8,SS_CENTERIMAGE + EDITTEXT IDC_PATHS_AVIOUTPUT,3,160,377,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_AVIOUTPUTS,384,159,11,15 + LTEXT "Saveimages:",IDC_PATHS_SAVEIMAGEL,3,178,129,8,SS_CENTERIMAGE + EDITTEXT IDC_PATHS_SAVEIMAGE,3,189,377,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_SAVEIMAGES,384,189,11,15 CONTROL "Use original image's path",IDC_PATHS_SAVEIMAGEORIGINALPATH, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,154,197,11 - LTEXT "Rips:",IDC_PATHS_RIPSL,3,185,131,8,SS_CENTERIMAGE - EDITTEXT IDC_PATHS_RIP,3,196,377,15,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_PATHS_RIPS,383,195,11,15 - PUSHBUTTON "Reset to defaults",IDC_PATHS_DEFAULT,2,218,92,14 - PUSHBUTTON "Rescan ROMs",IDC_ROM_RESCAN,2,235,92,14 - COMBOBOX IDC_PATHS_DEFAULTTYPE,99,219,163,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Clear disk history",IDC_RESETDISKHISTORY,99,235,92,14 - CONTROL "Use relative paths",IDC_PATHS_RELATIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,199,237,94,11 - PUSHBUTTON "Clear registry",IDC_RESETREGISTRY,302,218,92,14 - CONTROL "Portable mode",IDC_REGISTRYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,303,237,82,11 - GROUPBOX "Debug logging",IDC_STATIC,1,254,393,53 - COMBOBOX IDC_LOGSELECT,7,269,137,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP - CONTROL "Enable full logging",IDC_LOGENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,270,93,12 - CONTROL "Log window",IDC_LOGENABLE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,254,270,68,12 - PUSHBUTTON "Save All [] Create zip file that includes both logs and config file.",IDC_LOGSAVE,337,270,51,14 - PUSHBUTTON "Open [] Open selected file.",IDC_LOGOPEN,337,286,51,14 - EDITTEXT IDC_LOGPATH,7,287,324,13,ES_READONLY - CONTROL "Cache Boxart files",IDC_PATHS_ARTCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,37,125,11 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,147,177,197,11 + LTEXT "Rips:",IDC_PATHS_RIPSL,3,207,131,8,SS_CENTERIMAGE + EDITTEXT IDC_PATHS_RIP,3,219,377,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_RIPS,383,218,11,15 + PUSHBUTTON "Reset to defaults",IDC_PATHS_DEFAULT,2,238,92,14 + PUSHBUTTON "Rescan ROMs",IDC_ROM_RESCAN,2,255,92,14 + COMBOBOX IDC_PATHS_DEFAULTTYPE,99,239,163,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Clear disk history",IDC_RESETDISKHISTORY,99,255,92,14 + CONTROL "Use relative paths",IDC_PATHS_RELATIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,199,257,94,11 + PUSHBUTTON "Clear registry",IDC_RESETREGISTRY,302,238,92,14 + CONTROL "Portable mode",IDC_REGISTRYMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,303,257,82,11 + GROUPBOX "Debug logging",IDC_STATIC,1,271,393,45 + COMBOBOX IDC_LOGSELECT,7,282,137,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + CONTROL "Enable full logging",IDC_LOGENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,151,283,93,12 + CONTROL "Log window",IDC_LOGENABLE2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,254,283,68,12 + PUSHBUTTON "Save All [] Create zip file that includes both logs and config file.",IDC_LOGSAVE,337,283,51,14 + PUSHBUTTON "Open [] Open selected file.",IDC_LOGOPEN,337,298,51,14 + EDITTEXT IDC_LOGPATH,7,299,324,13,ES_READONLY + CONTROL "Cache Boxart files",IDC_PATHS_ARTCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,267,31,125,11 + EDITTEXT IDC_PATHS_NVRAM,3,73,377,15,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_PATHS_NVRAMS,384,73,11,15 + LTEXT "NVRAM files:",IDC_PATHS_NVRAML,3,62,134,8,SS_CENTERIMAGE END IDD_QUICKSTART DIALOGEX 0, 0, 396, 316 @@ -2066,11 +2069,11 @@ STRINGTABLE BEGIN IDS_QS_MODEL_UAE "High-end expanded configuration" IDS_QS_MODEL_ARCADIA "Arcadia\nArcadia Multi Select system is arcade platform developed by Arcadia and Mastertronic. It is based on an A500 mainboard with ROM cage attached to expansion port. Arcadia ROM files go to ""Cartridge ROM File"" in ROM-panel." - IDS_QS_MODEL_ALG "American Laser Games\n" IDS_QS_MODEL_A3000 "1.4 ROM, 2MB Chip + 8MB Fast\n\n2.04 ROM, 2MB Chip + 8MB Fast\n\n3.1 ROM, 2MB Chip + 8MB Fast\n" IDS_QS_MODEL_A4000 "68030, 3.1 ROM, 2MB Chip + 8MB Fast\n\n68040, 3.1 ROM, 2MB Chip + 8MB Fast\n\nCyberStorm PPC\n" IDS_QS_MODEL_A4000T "A4000T (test)\nA4000T\n" IDS_QS_MODEL_MACROSYSTEM "Macrosystem Casablanca/DraCo\n" + IDS_QS_MODEL_ALG "American Laser Games\n" END STRINGTABLE diff --git a/od-win32/win32.cpp b/od-win32/win32.cpp index 720a0e45..fc44f54f 100644 --- a/od-win32/win32.cpp +++ b/od-win32/win32.cpp @@ -4815,46 +4815,54 @@ static void createdir (const TCHAR *path) CreateDirectory (path, NULL); } -void fetch_saveimagepath (TCHAR *out, int size, int dir) +void fetch_saveimagepath(TCHAR *out, int size, int dir) { - fetch_path (_T("SaveimagePath"), out, size); + fetch_path(_T("SaveimagePath"), out, size); if (dir) { out[_tcslen (out) - 1] = 0; - createdir (out); - fetch_path (_T("SaveimagePath"), out, size); + createdir(out); + fetch_path(_T("SaveimagePath"), out, size); } } -void fetch_configurationpath (TCHAR *out, int size) +void fetch_configurationpath(TCHAR *out, int size) { - fetch_path (_T("ConfigurationPath"), out, size); + fetch_path(_T("ConfigurationPath"), out, size); } -void fetch_luapath (TCHAR *out, int size) +void fetch_luapath(TCHAR *out, int size) { - fetch_path (_T("LuaPath"), out, size); + fetch_path(_T("LuaPath"), out, size); } -void fetch_screenshotpath (TCHAR *out, int size) +void fetch_nvrampath(TCHAR *out, int size) { - fetch_path (_T("ScreenshotPath"), out, size); + fetch_path(_T("NVRAMPath"), out, size); } -void fetch_ripperpath (TCHAR *out, int size) +void fetch_screenshotpath(TCHAR *out, int size) { - fetch_path (_T("RipperPath"), out, size); + fetch_path(_T("ScreenshotPath"), out, size); } -void fetch_statefilepath (TCHAR *out, int size) +void fetch_ripperpath(TCHAR *out, int size) { - fetch_path (_T("StatefilePath"), out, size); + fetch_path(_T("RipperPath"), out, size); } -void fetch_inputfilepath (TCHAR *out, int size) +void fetch_statefilepath(TCHAR *out, int size) { - fetch_path (_T("InputPath"), out, size); + fetch_path(_T("StatefilePath"), out, size); } -void fetch_datapath (TCHAR *out, int size) +void fetch_inputfilepath(TCHAR *out, int size) { - fetch_path (NULL, out, size); + fetch_path(_T("InputPath"), out, size); } -void fetch_rompath (TCHAR *out, int size) +void fetch_datapath(TCHAR *out, int size) { - fetch_path (_T("KickstartPath"), out, size); + fetch_path(NULL, out, size); +} +void fetch_rompath(TCHAR* out, int size) +{ + fetch_path(_T("KickstartPath"), out, size); +} +void fetch_videopath(TCHAR* out, int size) +{ + fetch_path(_T("VideoPath"), out, size); } static int isfilesindir (const TCHAR *p) { @@ -4882,37 +4890,41 @@ static int isfilesindir (const TCHAR *p) return 0; } -void fetch_path (const TCHAR *name, TCHAR *out, int size) +void fetch_path(const TCHAR *name, TCHAR *out, int size) { int size2 = size; - _tcscpy (out, start_path_data); + _tcscpy(out, start_path_data); if (!name) { fullpath (out, size); return; } - if (!_tcscmp (name, _T("FloppyPath"))) - _tcscat (out, _T("..\\shared\\adf\\")); - if (!_tcscmp (name, _T("CDPath"))) - _tcscat (out, _T("..\\shared\\cd\\")); - if (!_tcscmp (name, _T("TapePath"))) - _tcscat (out, _T("..\\shared\\tape\\")); - if (!_tcscmp (name, _T("hdfPath"))) - _tcscat (out, _T("..\\shared\\hdf\\")); - if (!_tcscmp (name, _T("KickstartPath"))) - _tcscat (out, _T("..\\shared\\rom\\")); - if (!_tcscmp (name, _T("ConfigurationPath"))) - _tcscat (out, _T("Configurations\\")); - if (!_tcscmp (name, _T("LuaPath"))) - _tcscat (out, _T("lua\\")); - if (!_tcscmp (name, _T("StatefilePath"))) - _tcscat (out, _T("Savestates\\")); - if (!_tcscmp (name, _T("InputPath"))) - _tcscat (out, _T("Inputrecordings\\")); + if (!_tcscmp(name, _T("FloppyPath"))) + _tcscat(out, _T("..\\shared\\adf\\")); + if (!_tcscmp(name, _T("CDPath"))) + _tcscat(out, _T("..\\shared\\cd\\")); + if (!_tcscmp(name, _T("TapePath"))) + _tcscat(out, _T("..\\shared\\tape\\")); + if (!_tcscmp(name, _T("hdfPath"))) + _tcscat(out, _T("..\\shared\\hdf\\")); + if (!_tcscmp(name, _T("KickstartPath"))) + _tcscat(out, _T("..\\shared\\rom\\")); + if (!_tcscmp(name, _T("ConfigurationPath"))) + _tcscat(out, _T("Configurations\\")); + if (!_tcscmp(name, _T("NVRAMPath"))) + _tcscat(out, _T("NVRAMs\\")); + if (!_tcscmp(name, _T("LuaPath"))) + _tcscat(out, _T("lua\\")); + if (!_tcscmp(name, _T("StatefilePath"))) + _tcscat(out, _T("Savestates\\")); + if (!_tcscmp(name, _T("InputPath"))) + _tcscat(out, _T("Inputrecordings\\")); + if (!_tcscmp(name, _T("VideoPath"))) + _tcscat(out, _T("Videos\\")); if (start_data >= 0) - regquerystr (NULL, name, out, &size); - if (GetFileAttributes (out) == INVALID_FILE_ATTRIBUTES) - _tcscpy (out, start_path_data); + regquerystr(NULL, name, out, &size); + if (GetFileAttributes(out) == INVALID_FILE_ATTRIBUTES) + _tcscpy(out, start_path_data); #if 0 if (out[0] == '\\' && (_tcslen (out) >= 2 && out[1] != '\\')) { /* relative? */ _tcscpy (out, start_path_data); @@ -4922,14 +4934,14 @@ void fetch_path (const TCHAR *name, TCHAR *out, int size) } } #endif - stripslashes (out); - if (!_tcscmp (name, _T("KickstartPath"))) { - DWORD v = GetFileAttributes (out); + stripslashes(out); + if (!_tcscmp(name, _T("KickstartPath"))) { + DWORD v = GetFileAttributes(out); if (v == INVALID_FILE_ATTRIBUTES || !(v & FILE_ATTRIBUTE_DIRECTORY)) - _tcscpy (out, start_path_data); + _tcscpy(out, start_path_data); } - fixtrailing (out); - fullpath (out, size2); + fixtrailing(out); + fullpath(out, size2); } int get_rom_path (TCHAR *out, pathtype mode) @@ -5019,24 +5031,26 @@ void set_path (const TCHAR *name, TCHAR *path, pathtype mode) TCHAR tmp[MAX_DPATH]; if (!path) { - if (!_tcscmp (start_path_data, start_path_exe)) - _tcscpy (tmp, _T(".\\")); + if (!_tcscmp(start_path_data, start_path_exe)) + _tcscpy(tmp, _T(".\\")); else - _tcscpy (tmp, start_path_data); - if (!_tcscmp (name, _T("KickstartPath"))) - _tcscat (tmp, _T("Roms")); - if (!_tcscmp (name, _T("ConfigurationPath"))) - _tcscat (tmp, _T("Configurations")); - if (!_tcscmp (name, _T("LuaPath"))) - _tcscat (tmp, _T("lua")); - if (!_tcscmp (name, _T("ScreenshotPath"))) - _tcscat (tmp, _T("Screenshots")); - if (!_tcscmp (name, _T("StatefilePath"))) - _tcscat (tmp, _T("Savestates")); - if (!_tcscmp (name, _T("SaveimagePath"))) - _tcscat (tmp, _T("SaveImages")); - if (!_tcscmp (name, _T("InputPath"))) - _tcscat (tmp, _T("Inputrecordings")); + _tcscpy(tmp, start_path_data); + if (!_tcscmp(name, _T("KickstartPath"))) + _tcscat(tmp, _T("ROMs")); + if (!_tcscmp(name, _T("ConfigurationPath"))) + _tcscat(tmp, _T("Configurations")); + if (!_tcscmp(name, _T("NVRAMPath"))) + _tcscat(tmp, _T("NVRAMs")); + if (!_tcscmp(name, _T("LuaPath"))) + _tcscat(tmp, _T("lua")); + if (!_tcscmp(name, _T("ScreenshotPath"))) + _tcscat(tmp, _T("Screenshots")); + if (!_tcscmp(name, _T("StatefilePath"))) + _tcscat(tmp, _T("Savestates")); + if (!_tcscmp(name, _T("SaveimagePath"))) + _tcscat(tmp, _T("SaveImages")); + if (!_tcscmp(name, _T("InputPath"))) + _tcscat(tmp, _T("Inputrecordings")); } else { _tcscpy (tmp, path); } diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index c689e311..99c7fff6 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -2438,7 +2438,8 @@ static const GUID diskselectionguids[] = { { 0x05aa5db2, 0x470b, 0x4725, { 0x96, 0x03, 0xee, 0x61, 0x30, 0xfc, 0x54, 0x99 } }, { 0x68366188, 0xa6d4, 0x4278, { 0xb7, 0x55, 0x6a, 0xb8, 0x17, 0xa6, 0x71, 0xd9 } }, { 0xe990bee1, 0xd7cc, 0x4768, { 0xaf, 0x34, 0xef, 0x39, 0x87, 0x48, 0x09, 0x50 } }, - { 0x12c53317, 0xd99c, 0x4494, { 0x8d, 0x81, 0x00, 0x6d, 0x8c, 0x62, 0x7d, 0x83 } } + { 0x12c53317, 0xd99c, 0x4494, { 0x8d, 0x81, 0x00, 0x6d, 0x8c, 0x62, 0x7d, 0x83 } }, + { 0x406859ac, 0x5283, 0x4f7e, { 0xb7, 0xee, 0x0c, 0x2b, 0x78, 0x3d, 0x1d, 0xcc } } }; static void getfilter (int num, const TCHAR *name, int *filter, TCHAR *fname) @@ -2797,7 +2798,6 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs break; case 6: case 7: - case 11: getfilter (flag, _T("KickstartPath"), previousfilter, filtername); fetch_path (_T("KickstartPath"), init_path, sizeof (init_path) / sizeof (TCHAR)); guid = &diskselectionguids[2]; @@ -2836,6 +2836,12 @@ int DiskSelection_2 (HWND hDlg, WPARAM wParam, int flag, struct uae_prefs *prefs guid = &diskselectionguids[4]; } break; + case 11: + case 19: + getfilter(flag, _T("NVRAMPath"), previousfilter, filtername); + fetch_path(_T("NVRAMPath"), init_path, sizeof(init_path) / sizeof(TCHAR)); + guid = &diskselectionguids[10]; + break; case 15: case 16: getfilter (flag, _T("InputPath"), previousfilter, filtername); @@ -6571,18 +6577,20 @@ static void wsetpath (HWND hDlg, const TCHAR *name, DWORD d, const TCHAR *def) static void values_to_pathsdialog (HWND hDlg) { - wsetpath (hDlg, _T("KickstartPath"), IDC_PATHS_ROM, _T("Roms")); - wsetpath (hDlg, _T("ConfigurationPath"), IDC_PATHS_CONFIG, _T("Configurations")); - wsetpath (hDlg, _T("ScreenshotPath"), IDC_PATHS_SCREENSHOT, _T("ScreenShots")); - wsetpath (hDlg, _T("StatefilePath"), IDC_PATHS_SAVESTATE, _T("Savestates")); - wsetpath (hDlg, _T("SaveimagePath"), IDC_PATHS_SAVEIMAGE, _T("SaveImages")); - wsetpath (hDlg, _T("VideoPath"), IDC_PATHS_AVIOUTPUT, _T("Videos")); - wsetpath (hDlg, _T("RipperPath"), IDC_PATHS_RIP, _T(".\\")); + wsetpath(hDlg, _T("KickstartPath"), IDC_PATHS_ROM, _T("ROMs")); + wsetpath(hDlg, _T("ConfigurationPath"), IDC_PATHS_CONFIG, _T("Configurations")); + wsetpath(hDlg, _T("NVRAMPath"), IDC_PATHS_NVRAM, _T("NVRAMs")); + wsetpath(hDlg, _T("ScreenshotPath"), IDC_PATHS_SCREENSHOT, _T("ScreenShots")); + wsetpath(hDlg, _T("StatefilePath"), IDC_PATHS_SAVESTATE, _T("Savestates")); + wsetpath(hDlg, _T("SaveimagePath"), IDC_PATHS_SAVEIMAGE, _T("SaveImages")); + wsetpath(hDlg, _T("VideoPath"), IDC_PATHS_AVIOUTPUT, _T("Videos")); + wsetpath(hDlg, _T("RipperPath"), IDC_PATHS_RIP, _T(".\\")); } static const TCHAR *pathnames[] = { _T("KickstartPath"), _T("ConfigurationPath"), + _T("NVRAMPath"), _T("ScreenshotPath"), _T("StatefilePath"), _T("SaveimagePath"), @@ -6612,6 +6620,7 @@ static void resetregistry (void) regdelete(NULL, _T("ConfigFileHardware_Auto")); regdelete(NULL, _T("ConfigFileHost_Auto")); regdelete(NULL, _T("ConfigurationPath")); + regdelete(NULL, _T("NVRAMPath")); regdelete(NULL, _T("SaveimagePath")); regdelete(NULL, _T("ScreenshotPath")); regdelete(NULL, _T("StatefilePath")); @@ -6809,13 +6818,14 @@ static INT_PTR CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM case WM_INITDIALOG: recursive++; pages[PATHS_ID] = hDlg; - setac (hDlg, IDC_PATHS_ROM); - setac (hDlg, IDC_PATHS_CONFIG); - setac (hDlg, IDC_PATHS_SCREENSHOT); - setac (hDlg, IDC_PATHS_SAVESTATE); - setac (hDlg, IDC_PATHS_SAVEIMAGE); - setac (hDlg, IDC_PATHS_AVIOUTPUT); - setac (hDlg, IDC_PATHS_RIP); + setac(hDlg, IDC_PATHS_ROM); + setac(hDlg, IDC_PATHS_CONFIG); + setac(hDlg, IDC_PATHS_NVRAM); + setac(hDlg, IDC_PATHS_SCREENSHOT); + setac(hDlg, IDC_PATHS_SAVESTATE); + setac(hDlg, IDC_PATHS_SAVEIMAGE); + setac(hDlg, IDC_PATHS_AVIOUTPUT); + setac(hDlg, IDC_PATHS_RIP); CheckDlgButton(hDlg, IDC_PATHS_RECURSIVEROMS, recursiveromscan); CheckDlgButton(hDlg, IDC_PATHS_CONFIGCACHE, configurationcache); CheckDlgButton(hDlg, IDC_PATHS_ARTCACHE, artcache); @@ -6951,6 +6961,18 @@ static INT_PTR CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM set_path (_T("ConfigurationPath"), tmp); FreeConfigStore (); break; + case IDC_PATHS_NVRAMS: + fetch_path (_T("NVRAMPath"), tmp, sizeof (tmp) / sizeof (TCHAR)); + if (DirectorySelection (hDlg, &pathsguid, tmp)) { + set_path (_T("NVRAMPath"), tmp); + values_to_pathsdialog (hDlg); + FreeConfigStore (); + } + break; + case IDC_PATHS_NVRAM: + GetWindowText(GetDlgItem(hDlg, IDC_PATHS_NVRAM), tmp, sizeof(tmp) / sizeof(TCHAR)); + set_path(_T("NVRAMPath"), tmp); + break; case IDC_PATHS_SCREENSHOTS: fetch_path (_T("ScreenshotPath"), tmp, sizeof (tmp) / sizeof (TCHAR)); if (DirectorySelection (hDlg, &pathsguid, tmp)) { @@ -7027,14 +7049,15 @@ static INT_PTR CALLBACK PathsDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM } SetCurrentDirectory (start_path_data); setpathmode (path_type); - set_path (_T("KickstartPath"), NULL, path_type); - set_path (_T("ConfigurationPath"), NULL, path_type); - set_path (_T("ScreenshotPath"), NULL, path_type); - set_path (_T("StatefilePath"), NULL, path_type); - set_path (_T("SaveimagePath"), NULL, path_type); - set_path (_T("VideoPath"), NULL, path_type); - set_path (_T("RipperPath"), NULL, path_type); - set_path (_T("InputPath"), NULL, path_type); + set_path(_T("KickstartPath"), NULL, path_type); + set_path(_T("ConfigurationPath"), NULL, path_type); + set_path(_T("NVRAMPath"), NULL, path_type); + set_path(_T("ScreenshotPath"), NULL, path_type); + set_path(_T("StatefilePath"), NULL, path_type); + set_path(_T("SaveimagePath"), NULL, path_type); + set_path(_T("VideoPath"), NULL, path_type); + set_path(_T("RipperPath"), NULL, path_type); + set_path(_T("InputPath"), NULL, path_type); values_to_pathsdialog (hDlg); FreeConfigStore (); } @@ -21156,7 +21179,7 @@ static const int ignorewindows[] = { -1, IDD_MISC1, IDC_LANGUAGE, IDC_STATENAME, -1, - IDD_PATHS, IDC_PATHS_ROM, IDC_PATHS_CONFIG, IDC_PATHS_SCREENSHOT, IDC_PATHS_SAVESTATE, IDC_PATHS_AVIOUTPUT, IDC_PATHS_SAVEIMAGE, IDC_PATHS_RIP, IDC_LOGPATH, + IDD_PATHS, IDC_PATHS_ROM, IDC_PATHS_CONFIG, IDC_PATHS_NVRAM, IDC_PATHS_SCREENSHOT, IDC_PATHS_SAVESTATE, IDC_PATHS_AVIOUTPUT, IDC_PATHS_SAVEIMAGE, IDC_PATHS_RIP, IDC_LOGPATH, -1, IDD_IOPORTS, IDC_PRINTERLIST, IDC_SAMPLERLIST, IDC_PS_PARAMS, IDC_SERIAL, IDC_MIDIOUTLIST, IDC_MIDIINLIST, IDC_DONGLELIST, -1, diff --git a/rommgr.cpp b/rommgr.cpp index 49117ffa..6ccf82cb 100644 --- a/rommgr.cpp +++ b/rommgr.cpp @@ -2336,10 +2336,12 @@ int configure_rom (struct uae_prefs *p, const int *rom, int msg) set_device_rom(p, path, ROMTYPE_CPUBOARD, 0); if (rd->type & (ROMTYPE_ARCADIAGAME | ROMTYPE_ALG)) { - _stprintf(p->flashfile, _T("%s.nvr"), rd->name); + fetch_nvrampath(p->flashfile, sizeof(p->flashfile) / sizeof(TCHAR)); + _stprintf(p->flashfile + _tcslen(p->flashfile), _T("%s.nvr"), rd->name); } if (rd->type & ROMTYPE_ALG) { - _stprintf(p->genlock_video_file, _T("%s.avi"), rd->name); + fetch_videopath(p->genlock_video_file, sizeof(p->genlock_video_file) / sizeof(TCHAR)); + _stprintf(p->genlock_video_file + _tcslen(p->genlock_video_file), _T("%s.avi"), rd->name); } return 1; } -- 2.47.3