// Dialog
//
-IDD_KICKSTART DIALOGEX 0, 0, 396, 304
+IDD_KICKSTART DIALOGEX 0, 0, 396, 204
STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
EXSTYLE WS_EX_CONTEXTHELP
FONT 8, "MS Sans Serif", 0, 0, 0x1
LTEXT "Real Time Clock file",IDC_STATIC,12,167,313,15,SS_CENTERIMAGE
EDITTEXT IDC_RTCFILE,12,183,361,12,ES_AUTOHSCROLL
PUSHBUTTON "...",IDC_RTCCHOOSER,376,181,10,15
- GROUPBOX "Expansion ROM Settings",IDC_STATIC,1,206,394,66
- LTEXT "SCSI/IDE/Boot ROM file:",IDC_STATIC,12,219,170,15,SS_CENTERIMAGE
- COMBOBOX IDC_SCSIROMSELECT,12,235,157,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_SCSIROMSELECTNUM,175,235,22,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- CONTROL "Autoboot disabled",IDC_SCSIROMFILEAUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,216,99,12
- RTEXT "Controller ID:",IDC_STATIC,294,216,57,15,SS_CENTERIMAGE
- COMBOBOX IDC_SCSIROMID,356,217,29,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_SCSIROMFILE,202,235,171,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "...",IDC_SCSIROMCHOOSER,376,235,10,15
- COMBOBOX IDC_SCSIROMSUBSELECT,202,253,171,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- LTEXT "Accelerator board ROM file:",IDC_STATIC,12,273,170,15,SS_CENTERIMAGE
- COMBOBOX IDC_CPUBOARDROMFILE,12,289,171,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON "...",IDC_CPUBOARDROMCHOOSER,187,288,10,15
- CONTROL "-",IDC_EXPANSION_SETTING1,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,11,256,77,10
- CONTROL "-",IDC_EXPANSION_SETTING2,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,116,256,77,10
END
IDD_DISPLAY DIALOGEX 0, 0, 396, 298
CONTROL "Double, fields+",IDC_LM_IDOUBLED3,"Button",BS_AUTORADIOBUTTON | BS_LEFT | WS_TABSTOP,299,277,90,10
END
-IDD_MEMORY DIALOGEX 0, 0, 396, 304
+IDD_MEMORY DIALOGEX 0, 0, 396, 246
STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
EXSTYLE WS_EX_CONTEXTHELP
FONT 8, "MS Sans Serif", 0, 0, 0x1
CONTROL "",IDC_Z3CHIPMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,248,71,60,20
EDITTEXT IDC_Z3CHIPRAM,311,76,40,12,ES_CENTER | ES_READONLY
EDITTEXT IDC_MAX32RAM,14,99,366,12,ES_CENTER | ES_READONLY
- GROUPBOX "Advanced Memory Settings",IDC_STATIC,0,133,393,164
+ GROUPBOX "Advanced Memory Settings",IDC_STATIC,1,134,393,107
RTEXT "Motherboard Fast:",IDC_STATIC,116,149,129,10,SS_CENTERIMAGE
CONTROL "",IDC_MBMEM1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,251,145,68,20
EDITTEXT IDC_MBRAM1,326,148,40,12,ES_CENTER | ES_READONLY
RTEXT "Second Z2 Fast RAM board:",IDC_STATIC,129,194,116,15,SS_CENTERIMAGE
CONTROL "",IDC_FASTMEM2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,251,193,68,20
EDITTEXT IDC_FASTRAM2,326,196,40,12,ES_CENTER | ES_READONLY
- RTEXT "Z3 mapping mode:",IDC_STATIC,149,220,93,15,SS_CENTERIMAGE
+ RTEXT "Z3 mapping mode:",IDC_STATIC,149,219,93,15,SS_CENTERIMAGE
COMBOBOX IDC_Z3MAPPING,249,220,117,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- RTEXT "Accelerator board memory:",IDC_STATIC,138,250,104,15,SS_CENTERIMAGE
- CONTROL "",IDC_CPUBOARDMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,251,246,68,20
- EDITTEXT IDC_CPUBOARDRAM,326,249,40,12,ES_CENTER | ES_READONLY
- COMBOBOX IDC_CPUBOARD_TYPE,9,255,117,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- COMBOBOX IDC_CPUBOARD_SUBTYPE,9,274,117,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
- CONTROL "-",IDC_CPUBOARD_SETTING1,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,155,277,100,10
- CONTROL "-",IDC_CPUBOARD_SETTING2,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,261,277,100,10
CONTROL "Autoconfig Z2 Fast RAM",IDC_FASTMEMAUTOCONFIG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,194,120,10
END
CONTROL "Full [] 100% collision hardware emulation. Only very few games need this option. Slowest.",IDC_COLLISION3,
"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
+ COMBOBOX IDC_GENLOCKMODE,237,77,103,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_GENLOCKMIX,346,77,38,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END
IDD_CHIPSET2 DIALOGEX 0, 0, 396, 305
CTEXT "Enter address",IDC_DBG_ADDRINPUTTXT,20,1,100,10,SS_CENTERIMAGE | WS_TABSTOP
END
-IDD_EXPANSION DIALOGEX 0, 0, 396, 302
+IDD_EXPANSION DIALOGEX 0, 0, 396, 194
STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
FONT 8, "MS Sans Serif", 0, 0, 0x1
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,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,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,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
EDITTEXT IDC_DISKINFOBOX,5,4,481,292,ES_MULTILINE | ES_READONLY | WS_VSCROLL
END
+IDD_EXPANSION2 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
+ RTEXT "Accelerator board memory:",IDC_STATIC,155,144,104,15,SS_CENTERIMAGE
+ CONTROL "",IDC_CPUBOARDMEM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TOP | WS_TABSTOP,269,141,68,20
+ EDITTEXT IDC_CPUBOARDRAM,343,146,40,12,ES_CENTER | ES_READONLY
+ COMBOBOX IDC_CPUBOARD_TYPE,13,117,117,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_CPUBOARD_SUBTYPE,13,136,117,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ CONTROL "-",IDC_CPUBOARD_SETTING1,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,14,172,97,10
+ CONTROL "-",IDC_CPUBOARD_SETTING2,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,121,172,100,10
+ GROUPBOX "Expansion Board Settings",IDC_STATIC,1,6,394,88
+ COMBOBOX IDC_SCSIROMSELECTNUM,175,42,22,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_SCSIROMSELECT,12,42,157,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Autoboot disabled",IDC_SCSIROMFILEAUTOBOOT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,62,99,12
+ RTEXT "SCSI controller ID:",IDC_STATIC,241,23,110,15,SS_CENTERIMAGE
+ COMBOBOX IDC_SCSIROMID,356,24,29,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ COMBOBOX IDC_SCSIROMFILE,202,42,171,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "...",IDC_SCSIROMCHOOSER,376,42,10,15
+ COMBOBOX IDC_SCSIROMSUBSELECT,12,60,157,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ LTEXT "Accelerator board ROM file:",IDC_STATIC,203,104,170,15,SS_CENTERIMAGE
+ COMBOBOX IDC_CPUBOARDROMFILE,200,119,171,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "...",IDC_CPUBOARDROMCHOOSER,374,119,10,15
+ CONTROL "-",IDC_EXPANSION_SETTING1,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,14,79,92,10
+ CONTROL "-",IDC_EXPANSION_SETTING3,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,233,79,77,10
+ GROUPBOX "Accelerator Board Settings",IDC_STATIC,1,96,394,97
+ GROUPBOX "Miscellaneous Expansions",IDC_STATIC,1,199,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,218,147,11
+ CONTROL "uaescsi.device",IDC_SCSIDEVICE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,231,147,11
+ CONTROL "CD32 Full Motion Video cartridge",IDC_CS_CD32FMV,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,244,151,11
+ CONTROL "Toccata Z2 sound card emulation",IDC_CS_TOCCATA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,257,151,11
+ CONTROL "Toccata Paula/CD audio mix",IDC_CS_TOCCATAMIXER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,269,151,11
+ GROUPBOX "Network",IDC_STATIC,181,199,213,101
+ CONTROL "bsdsocket.library [] bsdsocket network library emulation.",IDC_SOCKETS,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,217,187,11
+ CONTROL "uaenet.device [] Sana 2 compatible network device emulation.",IDC_SANA2,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,230,187,11
+ CONTROL "A2065 Z2 [] A2065 Ethernet Zorro II card emulation.",IDC_A2065,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,243,187,11
+ COMBOBOX IDC_NETDEVICE,202,271,178,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+ CONTROL "Include host SCSI devices",IDC_CS_SCSIMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,286,147,11
+ CONTROL "Realtek 8029 PCI [] Realtek 8029 PCI NIC emulation",IDC_NE2000,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,257,187,11
+ CONTROL "-",IDC_CPUBOARD_SETTING3,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,233,172,100,10
+ CONTROL "-",IDC_EXPANSION_SETTING2,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,121,79,101,10
+ CONTROL "Enabled",IDC_SCSIROMSELECTED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,202,43,99,12
+ COMBOBOX IDC_SCSIROMSELECTCAT,12,23,157,75,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP
+END
+
/////////////////////////////////////////////////////////////////////////////
//
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 3,1,1,0
- PRODUCTVERSION 3,1,1,0
+ FILEVERSION 3,2,0,0
+ PRODUCTVERSION 3,2,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "WinUAE"
- VALUE "FileVersion", "3.1.1.0"
+ VALUE "FileVersion", "3.2.0.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.1.0"
+ VALUE "ProductVersion", "3.2.0.0"
END
END
BLOCK "VarFileInfo"
IDD_MEMORY, DIALOG
BEGIN
- BOTTOMMARGIN, 301
END
IDD_CPU, DIALOG
IDD_CHIPSET, DIALOG
BEGIN
- BOTTOMMARGIN, 169
END
IDD_CHIPSET2, DIALOG
IDD_EXPANSION, DIALOG
BEGIN
- BOTTOMMARGIN, 289
END
IDD_INPUTMAP, DIALOG
IDD_DISKINFO, DIALOG
BEGIN
END
+
+ IDD_EXPANSION2, DIALOG
+ BEGIN
+ END
END
#endif // APSTUDIO_INVOKED
IDS_FRONTEND "Frontend"
IDS_CHIPSET2 "Adv. Chipset"
IDS_GAMEPORTS "Game ports"
- IDS_EXPANSION "Expansions"
+ IDS_EXPANSION "RTG board"
+ IDS_EXPANSION2 "Expansions"
END
STRINGTABLE
static int scsiromselected = 0;
static int scsiromselectednum = 0;
+static int scsiromselectedcatnum = 0;
#define Error(x) MessageBox (NULL, (x), _T("WinUAE Error"), MB_OK)
static int LOADSAVE_ID = -1, MEMORY_ID = -1, KICKSTART_ID = -1, CPU_ID = -1,
DISPLAY_ID = -1, HW3D_ID = -1, CHIPSET_ID = -1, CHIPSET2_ID = -1, SOUND_ID = -1, FLOPPY_ID = -1, DISK_ID = -1,
HARDDISK_ID = -1, IOPORTS_ID = -1, GAMEPORTS_ID = -1, INPUT_ID = -1, MISC1_ID = -1, MISC2_ID = -1,
- AVIOUTPUT_ID = -1, PATHS_ID = -1, QUICKSTART_ID = -1, ABOUT_ID = -1, EXPANSION_ID = -1, FRONTEND_ID = -1;
+ AVIOUTPUT_ID = -1, PATHS_ID = -1, QUICKSTART_ID = -1, ABOUT_ID = -1, EXPANSION_ID = -1, EXPANSION2_ID = -1, FRONTEND_ID = -1;
static const int INPUTMAP_ID = MAX_C_PAGES - 1;
static HWND pages[MAX_C_PAGES];
#define MAX_IMAGETOOLTIPS 10
93, -1, -1, // Warp Engine
105, -1, -1, // TekMagic
112, -1, -1, // DKB 12x0
+ 143, -1, -1, // DKB WildFire
113, -1, -1, // Fusion Forty
95, 101, -1, -1, // CS MK I
96, -1, -1, // CS MK II
_T("Blizzard 1230-IV\0Blizzard 1260\0")
_T("Blizzard 1230-IV/SCSI\0Blizzard 1260/SCSI\0")
_T("Blizzard 2060\0Warp Engine\0TekMagic 2040/2060\0")
- _T("DKB 1230/1240\0Fusion Forty\0")
+ _T("DKB 1230/1240\0DKB WildFire\0Fusion Forty\0")
_T("CyberStorm MK I\0CyberStorm MK II\0CyberStorm MK III\0")
_T("Blizzard PPC\0CyberStorm PPC\0")
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);
+ ew(hDlg, IDC_GENLOCKMIX, workprefs.genlock ? TRUE : FALSE);
}
static const int fakerefreshrates[] = { 50, 60, 100, 120, 0 };
SendDlgItemMessage (hDlg, IDC_CS_EXT, CB_SETCURSEL, workprefs.cs_compatible, 0);
SendDlgItemMessage(hDlg, IDC_MONITOREMU, CB_SETCURSEL, workprefs.monitoremu, 0);
SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_SETCURSEL, workprefs.genlock_image, 0);
+ SendDlgItemMessage(hDlg, IDC_GENLOCKMIX, CB_SETCURSEL, workprefs.genlock_mix / 25, 0);
}
static void values_from_chipsetdlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
nn = SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_GETCURSEL, 0, 0);
if (nn != CB_ERR)
workprefs.genlock_image = nn;
+ nn = SendDlgItemMessage(hDlg, IDC_GENLOCKMIX, CB_GETCURSEL, 0, 0);
+ if (nn != CB_ERR) {
+ workprefs.genlock_mix = nn * 25;
+ if (workprefs.genlock_mix >= 250)
+ workprefs.genlock_mix = 255;
+ }
}
static INT_PTR CALLBACK ChipsetDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_ADDSTRING, 0, (LPARAM) _T("Noise"));
SendDlgItemMessage(hDlg, IDC_GENLOCKMODE, CB_ADDSTRING, 0, (LPARAM) _T("Test card"));
+ SendDlgItemMessage(hDlg, IDC_GENLOCKMIX, CB_RESETCONTENT, 0, 0);
+ for (int i = 0; i <= 10; i++) {
+ _stprintf(buffer, _T("%d%%"), (10 - i) * 10);
+ SendDlgItemMessage(hDlg, IDC_GENLOCKMIX, CB_ADDSTRING, 0, (LPARAM)buffer);
+ }
+
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));
return FALSE;
}
-static const int cpuboard_settings_id[] = { IDC_CPUBOARD_SETTING1, IDC_CPUBOARD_SETTING2, -1 };
+static const int cpuboard_settings_id[] = { IDC_CPUBOARD_SETTING1, IDC_CPUBOARD_SETTING2, IDC_CPUBOARD_SETTING3, -1 };
static void enable_for_memorydlg (HWND hDlg)
{
ew (hDlg, IDC_MBMEM1, z3);
ew (hDlg, IDC_MBRAM2, mbram2);
ew (hDlg, IDC_MBMEM2, mbram2);
- ew(hDlg, IDC_CPUBOARDMEM, workprefs.cpuboard_type > 0);
- ew(hDlg, IDC_CPUBOARDRAM, workprefs.cpuboard_type > 0);
- ew(hDlg, IDC_CPUBOARD_SUBTYPE, workprefs.cpuboard_type);
- const struct expansionboardsettings *cbs = cpuboards[workprefs.cpuboard_type].subtypes[workprefs.cpuboard_subtype].settings;
- for (int i = 0; cpuboard_settings_id[i] >= 0; i++) {
- hide(hDlg, cpuboard_settings_id[i], !(workprefs.address_space_24 == false && cbs && cbs[i].name));
- }
}
extern uae_u32 natmem_size;
static void setcpuboardmemsize(HWND hDlg)
{
+ if (workprefs.cpuboardmem1_size > cpuboard_maxmemory(&workprefs))
+ workprefs.cpuboardmem1_size = cpuboard_maxmemory(&workprefs);
+
+ if (cpuboard_memorytype(&workprefs) == BOARD_MEMORY_Z2) {
+ workprefs.fastmem2_size = workprefs.cpuboardmem1_size;
+ }
+ if (cpuboard_memorytype(&workprefs) == BOARD_MEMORY_25BITMEM) {
+ workprefs.mem25bit_size = workprefs.cpuboardmem1_size;
+ }
+ if (workprefs.cpuboard_type == 0)
+ workprefs.mem25bit_size = 0;
+
+ if (cpuboard_memorytype(&workprefs) == BOARD_MEMORY_HIGHMEM)
+ workprefs.mbresmem_high_size = workprefs.cpuboardmem1_size;
+
int maxmem = cpuboard_maxmemory(&workprefs);
if (workprefs.cpuboardmem1_size > maxmem) {
workprefs.cpuboardmem1_size = maxmem;
SendDlgItemMessage (hDlg, IDC_CHIPMEM, TBM_SETPOS, TRUE, mem_size);
SetDlgItemText (hDlg, IDC_CHIPRAM, memsize_names[msi_chip[mem_size]]);
- if (workprefs.cpuboardmem1_size > cpuboard_maxmemory(&workprefs))
- workprefs.cpuboardmem1_size = cpuboard_maxmemory(&workprefs);
-
- if (cpuboard_memorytype(&workprefs) == BOARD_MEMORY_Z2) {
- workprefs.fastmem2_size = workprefs.cpuboardmem1_size;
- }
- if (cpuboard_memorytype(&workprefs) == BOARD_MEMORY_25BITMEM) {
- workprefs.mem25bit_size = workprefs.cpuboardmem1_size;
- }
- if (workprefs.cpuboard_type == 0)
- workprefs.mem25bit_size = 0;
mem_size = 0;
switch (workprefs.fastmem_size) {
mem_size = 8;
else
mem_size = 9;
- int min_mem = MIN_P96_MEM;
- int max_mem = MAX_P96_MEM_Z3;
- if (!gfxboard_is_z3 (workprefs.rtgmem_type)) {
- int v = workprefs.rtgmem_size;
- max_mem = 0;
- workprefs.rtgmem_size = 1024 * 1024;
- while (getz2size (&workprefs) > 0) {
- workprefs.rtgmem_size *= 2;
- max_mem++;
- }
- if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v > gfxboard_get_vram_max (workprefs.rtgmem_type))
- v = gfxboard_get_vram_max (workprefs.rtgmem_type);
- if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v < gfxboard_get_vram_min (workprefs.rtgmem_type))
- v = gfxboard_get_vram_min (workprefs.rtgmem_type);
- workprefs.rtgmem_size = v;
- if (workprefs.rtgmem_size > 8 * 1024 * 1024)
- mem_size = 8 * 1024 * 1024;
- while (getz2size (&workprefs) < 0 && workprefs.rtgmem_size > 0)
- workprefs.rtgmem_size -= 1024 * 1024;
- } else {
- int v = workprefs.rtgmem_size;
- if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v > gfxboard_get_vram_max (workprefs.rtgmem_type))
- v = gfxboard_get_vram_max (workprefs.rtgmem_type);
- if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v < gfxboard_get_vram_min (workprefs.rtgmem_type))
- v = gfxboard_get_vram_min (workprefs.rtgmem_type);
- workprefs.rtgmem_size = v;
- }
- if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE) {
- switch (gfxboard_get_vram_min (workprefs.rtgmem_type)) {
- case 0x00100000: min_mem = 1; break;
- case 0x00200000: min_mem = 2; break;
- case 0x00400000: min_mem = 3; break;
- }
- switch (gfxboard_get_vram_max (workprefs.rtgmem_type)) {
- case 0x00100000: max_mem = 1; break;
- case 0x00200000: max_mem = 2; break;
- case 0x00400000: max_mem = 3; break;
- }
- }
- SendDlgItemMessage (hDlg, IDC_P96MEM, TBM_SETRANGE, TRUE, MAKELONG (min_mem, max_mem));
+
SendDlgItemMessage (hDlg, IDC_Z3CHIPMEM, TBM_SETPOS, TRUE, mem_size);
SetDlgItemText (hDlg, IDC_Z3CHIPRAM, memsize_names[msi_z3chip[mem_size]]);
- mem_size = 0;
- switch (workprefs.rtgmem_size) {
- case 0x00000000: mem_size = 0; break;
- case 0x00100000: mem_size = 1; break;
- case 0x00200000: mem_size = 2; break;
- case 0x00400000: mem_size = 3; break;
- case 0x00800000: mem_size = 4; break;
- case 0x01000000: mem_size = 5; break;
- case 0x02000000: mem_size = 6; break;
- case 0x04000000: mem_size = 7; break;
- case 0x08000000: mem_size = 8; break;
- case 0x10000000: mem_size = 9; break;
- case 0x20000000: mem_size = 10; break;
- case 0x40000000: mem_size = 11; break;
- }
-
- SendDlgItemMessage (hDlg, IDC_P96MEM, TBM_SETPOS, TRUE, mem_size);
- SetDlgItemText (hDlg, IDC_P96RAM, memsize_names[msi_gfx[mem_size]]);
- SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_SETCURSEL, workprefs.rtgmem_size == 0 ? 0 : workprefs.rtgmem_type + 1, 0);
- SendDlgItemMessage (hDlg, IDC_RTG_8BIT, CB_SETCURSEL, (workprefs.picasso96_modeflags & RGBFF_CLUT) ? 1 : 0, 0);
- SendDlgItemMessage (hDlg, IDC_RTG_16BIT, CB_SETCURSEL,
- (manybits (workprefs.picasso96_modeflags, RGBFF_R5G6B5PC | RGBFF_R5G6B5PC | RGBFF_R5G6B5 | RGBFF_R5G5B5 | RGBFF_B5G6R5PC | RGBFF_B5G5R5PC)) ? 1 :
- (workprefs.picasso96_modeflags & RGBFF_R5G6B5PC) ? 2 :
- (workprefs.picasso96_modeflags & RGBFF_R5G5B5PC) ? 3 :
- (workprefs.picasso96_modeflags & RGBFF_R5G6B5) ? 4 :
- (workprefs.picasso96_modeflags & RGBFF_R5G5B5) ? 5 :
- (workprefs.picasso96_modeflags & RGBFF_B5G6R5PC) ? 6 :
- (workprefs.picasso96_modeflags & RGBFF_B5G5R5PC) ? 7 : 0, 0);
- SendDlgItemMessage (hDlg, IDC_RTG_24BIT, CB_SETCURSEL,
- (manybits (workprefs.picasso96_modeflags, RGBFF_R8G8B8 | RGBFF_B8G8R8)) ? 1 :
- (workprefs.picasso96_modeflags & RGBFF_R8G8B8) ? 2 :
- (workprefs.picasso96_modeflags & RGBFF_B8G8R8) ? 3 : 0, 0);
- SendDlgItemMessage (hDlg, IDC_RTG_32BIT, CB_SETCURSEL,
- (manybits (workprefs.picasso96_modeflags, RGBFF_A8R8G8B8 | RGBFF_A8B8G8R8 | RGBFF_R8G8B8A8 | RGBFF_B8G8R8A8)) ? 1 :
- (workprefs.picasso96_modeflags & RGBFF_A8R8G8B8) ? 2 :
- (workprefs.picasso96_modeflags & RGBFF_A8B8G8R8) ? 3 :
- (workprefs.picasso96_modeflags & RGBFF_R8G8B8A8) ? 4 :
- (workprefs.picasso96_modeflags & RGBFF_B8G8R8A8) ? 5 : 0, 0);
- if (workprefs.win32_rtgvblankrate <= 0 ||
- workprefs.win32_rtgvblankrate == 50 ||
- workprefs.win32_rtgvblankrate == 60 ||
- workprefs.win32_rtgvblankrate == 70 ||
- workprefs.win32_rtgvblankrate == 75) {
- SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_SETCURSEL,
- (workprefs.win32_rtgvblankrate == 0) ? 0 :
- (workprefs.win32_rtgvblankrate == -1) ? 1 :
- (workprefs.win32_rtgvblankrate == -2) ? 0 :
- (workprefs.win32_rtgvblankrate == 50) ? 2 :
- (workprefs.win32_rtgvblankrate == 60) ? 3 :
- (workprefs.win32_rtgvblankrate == 70) ? 4 :
- (workprefs.win32_rtgvblankrate == 75) ? 5 : 0, 0);
- } else {
- TCHAR tmp[10];
- _stprintf (tmp, _T("%d"), workprefs.win32_rtgvblankrate);
- SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, WM_SETTEXT, 0, (LPARAM)tmp);
- }
-
-
- CheckDlgButton(hDlg, IDC_RTG_SCALE, workprefs.gf[1].gfx_filter_autoscale == RTG_MODE_SCALE);
- CheckDlgButton(hDlg, IDC_RTG_CENTER, workprefs.gf[1].gfx_filter_autoscale == RTG_MODE_CENTER);
- CheckDlgButton (hDlg, IDC_RTG_SCALE_ALLOW, workprefs.win32_rtgallowscaling);
- CheckDlgButton (hDlg, IDC_RTG_MATCH_DEPTH, workprefs.win32_rtgmatchdepth);
- CheckDlgButton (hDlg, IDC_RTG_VBINTERRUPT, workprefs.rtg_hardwareinterrupt);
- CheckDlgButton (hDlg, IDC_RTG_HWSPRITE, workprefs.rtg_hardwaresprite);
-
- SendDlgItemMessage (hDlg, IDC_RTG_SCALE_ASPECTRATIO, CB_SETCURSEL,
- (workprefs.win32_rtgscaleaspectratio == 0) ? 0 :
- (workprefs.win32_rtgscaleaspectratio < 0) ? 1 :
- getaspectratioindex (workprefs.win32_rtgscaleaspectratio) + 2, 0);
-
mem_size = 0;
switch (workprefs.mbresmem_low_size) {
case 0x00000000: mem_size = 0; break;
SendDlgItemMessage (hDlg, IDC_MBMEM1, TBM_SETPOS, TRUE, mem_size);
SetDlgItemText (hDlg, IDC_MBRAM1, memsize_names[msi_gfx[mem_size]]);
- if (cpuboard_memorytype(&workprefs) == BOARD_MEMORY_HIGHMEM)
- workprefs.mbresmem_high_size = workprefs.cpuboardmem1_size;
-
mem_size = 0;
switch (workprefs.mbresmem_high_size) {
case 0x00000000: mem_size = 0; break;
SendDlgItemMessage (hDlg, IDC_MBMEM2, TBM_SETPOS, TRUE, mem_size);
SetDlgItemText (hDlg, IDC_MBRAM2, memsize_names[msi_gfx[mem_size]]);
- setcpuboardmemsize(hDlg);
setmax32bitram (hDlg);
}
*size2p = s2;
}
+static void addromfiles(UAEREG *fkey, HWND hDlg, DWORD d, const TCHAR *path, int type1, int type2)
+{
+ int idx;
+ TCHAR tmp[MAX_DPATH];
+ TCHAR tmp2[MAX_DPATH];
+ TCHAR seltmp[MAX_DPATH];
+ struct romdata *rdx = NULL;
+
+ SendDlgItemMessage(hDlg, d, CB_RESETCONTENT, 0, 0);
+ SendDlgItemMessage(hDlg, d, CB_ADDSTRING, 0, (LPARAM) _T(""));
+ if (path)
+ rdx = scan_single_rom(path);
+ idx = 0;
+ seltmp[0] = 0;
+ for (; fkey;) {
+ int size = sizeof(tmp) / sizeof(TCHAR);
+ int size2 = sizeof(tmp2) / sizeof(TCHAR);
+ if (!regenumstr(fkey, idx, tmp, &size, tmp2, &size2))
+ break;
+ if (_tcslen(tmp) == 7 || _tcslen(tmp) == 13) {
+ int group = 0;
+ int subitem = 0;
+ int idx2 = _tstol(tmp + 4);
+ if (_tcslen(tmp) == 13) {
+ group = _tstol(tmp + 8);
+ subitem = _tstol(tmp + 11);
+ }
+ if (idx2 >= 0) {
+ struct romdata *rd = getromdatabyidgroup(idx2, group, subitem);
+ 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 || (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);
+ if (rd == rdx)
+ _tcscpy(seltmp, tmp);
+ break;
+ }
+ }
+ }
+ }
+ }
+ idx++;
+ }
+ if (seltmp[0])
+ SendDlgItemMessage(hDlg, d, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) seltmp);
+ else
+ SetDlgItemText(hDlg, d, path);
+}
+
+static void getromfile(HWND hDlg, DWORD d, TCHAR *path, int size)
+{
+ LRESULT val = SendDlgItemMessage(hDlg, d, CB_GETCURSEL, 0, 0L);
+ if (val == CB_ERR) {
+ SendDlgItemMessage(hDlg, d, WM_GETTEXT, (WPARAM) size, (LPARAM) path);
+ }
+ else {
+ TCHAR tmp1[MAX_DPATH];
+ struct romdata *rd;
+ SendDlgItemMessage(hDlg, d, CB_GETLBTEXT, (WPARAM) val, (LPARAM) tmp1);
+ path[0] = 0;
+ rd = getromdatabyname(tmp1);
+ if (rd) {
+ struct romlist *rl = getromlistbyromdata(rd);
+ if (rd->configname)
+ _stprintf(path, _T(":%s"), rd->configname);
+ else if (rl)
+ _tcsncpy(path, rl->path, size);
+ }
+ }
+}
+
+
static struct netdriverdata *ndd[MAX_TOTAL_NET_DEVICES + 1];
static void expansion_net (HWND hDlg)
SendDlgItemMessage (hDlg, IDC_NETDEVICE, CB_SETCURSEL, 0, 0);
}
-static void enable_for_expansiondlg (HWND hDlg)
+static const int scsiromselectedmask[] = { EXPANSIONTYPE_SCSI, EXPANSIONTYPE_IDE, EXPANSIONTYPE_SASI, EXPANSIONTYPE_PCI_BRIDGE };
+static void init_expansion2(HWND hDlg)
{
- int z3 = true;
- int cw, en;
+ static int first = -1;
- en = !!full_property_sheet;
- cw = catweasel_detect ();
- ew (hDlg, IDC_CATWEASEL, cw && en);
- ew (hDlg, IDC_SOCKETS, en);
- ew (hDlg, IDC_SCSIDEVICE, en);
- ew (hDlg, IDC_CATWEASEL, en);
- ew (hDlg, IDC_NETDEVICE, en);
- ew (hDlg, IDC_SANA2, en);
- ew (hDlg, IDC_A2065, en);
- ew (hDlg, IDC_NETDEVICE, en && (workprefs.a2065name[0] || workprefs.ne2000pciname[0]));
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTCAT, CB_SETCURSEL, scsiromselectedcatnum, 0);
- int rtg = workprefs.rtgmem_size && full_property_sheet && workprefs.rtgmem_type < GFXBOARD_HARDWARE;
- int rtg2 = workprefs.rtgmem_size || workprefs.rtgmem_type >= GFXBOARD_HARDWARE;
- int rtg3 = workprefs.rtgmem_size && workprefs.rtgmem_type < GFXBOARD_HARDWARE;
- int rtg4 = workprefs.rtgmem_type < GFXBOARD_HARDWARE;
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECT, CB_RESETCONTENT, 0, 0);
+ scsiromselect_table[0] = -1;
+ for (int i = 0; expansionroms[i].name; i++) {
+ TCHAR name[256];
+ if (expansionroms[i].romtype & ROMTYPE_CPUBOARD)
+ continue;
+ if (!(expansionroms[i].deviceflags & scsiromselectedmask[scsiromselectedcatnum]))
+ continue;
+ if (scsiromselectedcatnum == 0 && (expansionroms[i].deviceflags & EXPANSIONTYPE_SASI))
+ continue;
+ name[0] = 0;
+ int cnt = 0;
+ for (int j = 0; j < MAX_DUPLICATE_EXPANSION_BOARDS; j++) {
+ if (cfgfile_board_enabled(&workprefs, expansionroms[i].romtype, j)) {
+ cnt++;
+ }
+ }
+ if (cnt > 0) {
+ if (first < 0)
+ first = i;
+ }
+ if (cnt == 1)
+ _tcscat(name, _T("* "));
+ else if (cnt > 1)
+ _stprintf(name + _tcslen(name), _T("[%d] "), cnt);
+ if (expansionroms[i].friendlymanufacturer) {
+ _tcscat(name, expansionroms[i].friendlymanufacturer);
+ _tcscat(name, _T(" "));
+ }
+ _tcscat(name, expansionroms[i].friendlyname);
+ gui_add_string(scsiromselect_table, hDlg, IDC_SCSIROMSELECT, i, name);
+ }
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTNUM, CB_RESETCONTENT, 0, 0);
+ for (int i = 0; i < MAX_DUPLICATE_EXPANSION_BOARDS; i++) {
+ TCHAR tmp[10];
+ _stprintf(tmp, _T("%d"), i + 1);
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTNUM, CB_ADDSTRING, 0, (LPARAM) tmp);
+ }
- ew (hDlg, IDC_P96RAM, rtg2);
- ew (hDlg, IDC_P96MEM, rtg2);
- ew (hDlg, IDC_RTG_Z2Z3, z3);
- ew (hDlg, IDC_RTG_8BIT, rtg);
- ew (hDlg, IDC_RTG_16BIT, rtg);
- ew (hDlg, IDC_RTG_24BIT, rtg);
- ew (hDlg, IDC_RTG_32BIT, rtg);
- ew (hDlg, IDC_RTG_MATCH_DEPTH, rtg3);
- ew (hDlg, IDC_RTG_SCALE, rtg2);
- ew (hDlg, IDC_RTG_CENTER, rtg2);
- ew (hDlg, IDC_RTG_SCALE_ALLOW, rtg2);
- ew (hDlg, IDC_RTG_SCALE_ASPECTRATIO, rtg2);
- ew (hDlg, IDC_RTG_VBLANKRATE, rtg2);
- ew (hDlg, IDC_RTG_BUFFERCNT, rtg2);
- ew (hDlg, IDC_RTG_DISPLAYSELECT, rtg2);
- ew (hDlg, IDC_RTG_VBINTERRUPT, rtg3);
- if (!workprefs.gfx_api) {
- workprefs.rtg_hardwaresprite = false;
- CheckDlgButton (hDlg, IDC_RTG_HWSPRITE, FALSE);
+ if (scsiromselected <= 0) {
+ int found = -1;
+ for (int i = 0; expansionroms[i].name; i++) {
+ int romtype = expansionroms[i].romtype;
+ if (romtype & ROMTYPE_CPUBOARD)
+ continue;
+ if (!(expansionroms[i].deviceflags & scsiromselectedmask[scsiromselectedcatnum]))
+ continue;
+ if (scsiromselectedcatnum == 0 && (expansionroms[i].deviceflags & EXPANSIONTYPE_SASI))
+ continue;
+ if (cfgfile_board_enabled(&workprefs, romtype, 0)) {
+ if (found == -1)
+ found = i;
+ else
+ found = -2;
+ }
+ }
+ if (scsiromselected < 0 && found < 0)
+ found = first;
+ if (found >= 0) {
+ scsiromselected = found;
+ }
}
- ew (hDlg, IDC_RTG_HWSPRITE, rtg3 && workprefs.gfx_api);
- ShowWindow (GetDlgItem(hDlg, IDC_CS_SCSIMODE), SW_HIDE);
- ew(hDlg, IDC_CS_CD32FMV, en);
- ew(hDlg, IDC_CS_TOCCATA, en);
- ew(hDlg, IDC_CS_TOCCATAMIXER, en && workprefs.sound_toccata);
- ew (hDlg, IDC_CS_SCSIMODE, FALSE);
-}
-static void values_to_expansiondlg (HWND hDlg)
-{
- int cw;
+ if (scsiromselected > 0)
+ gui_set_string_cursor(scsiromselect_table, hDlg, IDC_SCSIROMSELECT, scsiromselected);
- CheckDlgButton (hDlg, IDC_SOCKETS, workprefs.socket_emu);
- 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_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);
- CheckDlgButton(hDlg, IDC_CS_SCSIMODE, workprefs.scsi == 2);
- SendDlgItemMessage (hDlg, IDC_RTG_BUFFERCNT, CB_SETCURSEL, workprefs.gfx_apmode[1].gfx_backbuffers == 0 ? 0 : workprefs.gfx_apmode[1].gfx_backbuffers - 1, 0);
- cw = catweasel_detect ();
- ew (hDlg, IDC_CATWEASEL, cw);
- if (!cw && workprefs.catweasel < 100)
- workprefs.catweasel = 0;
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTNUM, CB_SETCURSEL, scsiromselectednum, 0);
+
+ SendDlgItemMessage(hDlg, IDC_SCSIROMID, CB_RESETCONTENT, 0, 0);
+ for (int i = 0; i < 8; i++) {
+ TCHAR tmp[10];
+ _stprintf(tmp, _T("%d"), i);
+ SendDlgItemMessage(hDlg, IDC_SCSIROMID, CB_ADDSTRING, 0, (LPARAM) tmp);
+ }
}
-static INT_PTR CALLBACK ExpansionDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- int v;
- TCHAR tmp[100];
- static int recursive = 0;
- static int enumerated;
- switch (msg)
- {
- case WM_INITDIALOG:
- pages[EXPANSION_ID] = hDlg;
- currentpage = EXPANSION_ID;
+static const int expansion_settings_id[] = { IDC_EXPANSION_SETTING1, IDC_EXPANSION_SETTING2, -IDC_EXPANSION_SETTING3, 1 };
- if (!enumerated) {
- ethernet_enumerate (ndd, NULL);
- for (int i = 0; ndd[i]; i++) {
- struct netdriverdata *n = ndd[i];
- if (!n->active)
- continue;
- if (n->type == UAENET_SLIRP) {
- WIN32GUI_LoadUIString (IDS_SLIRP, tmp, sizeof tmp / sizeof (TCHAR));
- n->desc = my_strdup(tmp);
- } else if (n->type == UAENET_SLIRP_INBOUND) {
- WIN32GUI_LoadUIString (IDS_SLIRP_INBOUND, tmp, sizeof tmp / sizeof (TCHAR));
- n->desc = my_strdup(tmp);
- }
- }
- enumerated = 1;
- }
- expansion_net (hDlg);
- init_displays_combo (hDlg, true);
+static void values_to_expansion2dlg_sub(HWND hDlg)
+{
+ SendDlgItemMessage(hDlg, IDC_CPUBOARDROMSUBSELECT, CB_RESETCONTENT, 0, 0);
+ ew(hDlg, IDC_CPUBOARDROMSUBSELECT, false);
- SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_RESETCONTENT, 0, 0);
- SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("-"));
- SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("UAE Zorro II"));
- SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("UAE Zorro III (*)"));
- SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Picasso II Zorro II"));
- SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Picasso II+ Zorro II"));
- SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Piccolo Zorro II"));
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSUBSELECT, CB_RESETCONTENT, 0, 0);
+ const struct expansionromtype *er = &expansionroms[scsiromselected];
+ const struct expansionsubromtype *srt = er->subtypes;
+ ew(hDlg, IDC_SCSIROMSUBSELECT, srt != NULL);
+ while (srt && srt->name) {
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSUBSELECT, CB_ADDSTRING, 0, (LPARAM) srt->name);
+ srt++;
+ }
+ int index;
+ struct boardromconfig *brc = get_device_rom(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum, &index);
+ if (brc) {
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSUBSELECT, CB_SETCURSEL, brc->roms[index].subtype, 0);
+ SendDlgItemMessage(hDlg, IDC_SCSIROMID, CB_SETCURSEL, brc->roms[index].device_id, 0);
+ }
+ else if (srt) {
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSUBSELECT, CB_SETCURSEL, 0, 0);
+ SendDlgItemMessage(hDlg, IDC_SCSIROMID, CB_SETCURSEL, 0, 0);
+ }
+ if (er->zorro < 2 || er->singleonly) {
+ scsiromselectednum = 0;
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTNUM, CB_SETCURSEL, 0, 0);
+ }
+ ew(hDlg, IDC_SCSIROMSELECTNUM, er->zorro >= 2 && !er->singleonly);
+}
+
+static void values_from_expansion2dlg(HWND hDlg)
+{
+ int index;
+ struct boardromconfig *brc;
+ TCHAR tmp[MAX_DPATH];
+ bool changed = false;
+
+ int checked = ischecked(hDlg, IDC_SCSIROMSELECTED);
+ getromfile(hDlg, IDC_SCSIROMFILE, tmp, MAX_DPATH / sizeof(TCHAR));
+ if (tmp[0] || checked) {
+ const struct expansionromtype *ert = &expansionroms[scsiromselected];
+ brc = get_device_rom_new(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum, &index);
+ if (checked) {
+ if (!brc->roms[index].romfile[0])
+ changed = true;
+ _tcscpy(brc->roms[index].romfile, _T(":ENABLED"));
+ } else {
+ changed = _tcscmp(tmp, brc->roms[index].romfile) != 0;
+ getromfile(hDlg, IDC_SCSIROMFILE, brc->roms[index].romfile, MAX_DPATH / sizeof(TCHAR));
+ }
+ brc->roms[index].autoboot_disabled = ischecked(hDlg, IDC_SCSIROMFILEAUTOBOOT);
+
+ int v = SendDlgItemMessage(hDlg, IDC_SCSIROMID, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR)
+ brc->roms[index].device_id = v;
+
+ const struct expansionboardsettings *cbs = ert->settings;
+ if (cbs) {
+ for (int i = 0; cbs[i].name; i++) {
+ int id = expansion_settings_id[i];
+ if (id < 0)
+ break;
+ brc->roms[index].device_settings &= ~(1 << i);
+ if (ischecked(hDlg, id))
+ brc->roms[index].device_settings |= 1 << i;
+ }
+ }
+
+ v = SendDlgItemMessage(hDlg, IDC_SCSIROMSUBSELECT, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR)
+ brc->roms[index].subtype = v;
+
+ } else {
+ brc = get_device_rom(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum, &index);
+ if (brc && brc->roms[index].romfile[0])
+ changed = true;
+ clear_device_rom(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum);
+ }
+ if (changed) {
+ init_expansion2(hDlg);
+ values_to_expansion2dlg_sub(hDlg);
+ }
+
+
+ getromfile(hDlg, IDC_CPUBOARDROMFILE, tmp, sizeof(brc->roms[index].romfile) / sizeof(TCHAR));
+ if (tmp[0]) {
+ brc = get_device_rom_new(&workprefs, ROMTYPE_CPUBOARD, 0, &index);
+ getromfile(hDlg, IDC_CPUBOARDROMFILE, brc->roms[index].romfile, sizeof(brc->roms[index].romfile) / sizeof(TCHAR));
+ }
+ else {
+ clear_device_rom(&workprefs, ROMTYPE_CPUBOARD, 0);
+ }
+}
+
+static void values_to_expansion2_expansion_roms(HWND hDlg, UAEREG *fkey)
+{
+ int index;
+ bool keyallocated = false;
+ struct boardromconfig *brc;
+
+ if (!fkey) {
+ fkey = regcreatetree(NULL, _T("DetectedROMs"));
+ keyallocated = true;
+ }
+ if (scsiromselected) {
+ 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;
+ }
+ }
+ ew(hDlg, IDC_SCSIROMFILE, true);
+ ew(hDlg, IDC_SCSIROMCHOOSER, true);
+ if (romtype & ROMTYPE_NOT) {
+ hide(hDlg, IDC_SCSIROMCHOOSER, 1);
+ hide(hDlg, IDC_SCSIROMFILE, 1);
+ hide(hDlg, IDC_SCSIROMSELECTED, 0);
+ setchecked(hDlg, IDC_SCSIROMSELECTED, brc && brc->roms[index].romfile[0] != 0);
+ } else {
+ hide(hDlg, IDC_SCSIROMCHOOSER, 0);
+ hide(hDlg, IDC_SCSIROMFILE, 0);
+ hide(hDlg, IDC_SCSIROMSELECTED, 1);
+ setchecked(hDlg, IDC_SCSIROMSELECTED, false);
+ addromfiles(fkey, hDlg, IDC_SCSIROMFILE, brc ? brc->roms[index].romfile : NULL, romtype, romtype_extra);
+ setchecked(hDlg, IDC_SCSIROMFILEAUTOBOOT, brc && brc->roms[index].autoboot_disabled);
+ }
+ } else {
+ hide(hDlg, IDC_SCSIROMCHOOSER, 0);
+ hide(hDlg, IDC_SCSIROMFILE, 0);
+ hide(hDlg, IDC_SCSIROMSELECTED, 1);
+ setchecked(hDlg, IDC_SCSIROMSELECTED, false);
+ setchecked(hDlg, IDC_SCSIROMFILEAUTOBOOT, false);
+ SendDlgItemMessage(hDlg, IDC_SCSIROMFILE, CB_RESETCONTENT, 0, 0);
+ ew(hDlg, IDC_SCSIROMFILE, false);
+ ew(hDlg, IDC_SCSIROMCHOOSER, false);
+ }
+ if (keyallocated)
+ regclosetree(fkey);
+}
+
+static void values_to_expansion2_expansion_settings(HWND hDlg)
+{
+ int index;
+ struct boardromconfig *brc;
+ const struct expansionromtype *ert = &expansionroms[scsiromselected];
+ brc = get_device_rom(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum, &index);
+ if (brc) {
+ if (brc->roms[index].romfile[0])
+ ew(hDlg, IDC_SCSIROMFILEAUTOBOOT, ert->autoboot_jumper);
+ }
+ else {
+ if (brc)
+ brc->roms[index].autoboot_disabled = false;
+ ew(hDlg, IDC_SCSIROMFILEAUTOBOOT, FALSE);
+ setchecked(hDlg, IDC_SCSIROMFILEAUTOBOOT, false);
+ }
+ ew(hDlg, IDC_SCSIROMID, ert->id_jumper);
+
+ const struct expansionboardsettings *cbs = ert->settings;
+ for (int i = 0; expansion_settings_id[i] >= 0; i++) {
+ hide(hDlg, expansion_settings_id[i], !(cbs && cbs[i].name));
+ }
+ int i = 0;
+ if (cbs) {
+ for (i = 0; cbs[i].name; i++) {
+ int id = expansion_settings_id[i];
+ if (id < 0)
+ break;
+ SetWindowText(GetDlgItem(hDlg, id), cbs[i].name);
+ setchecked(hDlg, id, (brc && (brc->roms[index].device_settings & (1 << i))));
+ }
+ }
+ while (expansion_settings_id[i] >= 0) {
+ int id = expansion_settings_id[i];
+ SetWindowText(GetDlgItem(hDlg, id), _T("-"));
+ i++;
+ }
+}
+
+static void enable_for_expansion2dlg (HWND hDlg)
+{
+ int z3 = true;
+ int cw, en;
+
+ en = !!full_property_sheet;
+ cw = catweasel_detect ();
+ ew (hDlg, IDC_CATWEASEL, cw && en);
+ ew (hDlg, IDC_SOCKETS, en);
+ ew (hDlg, IDC_SCSIDEVICE, en);
+ ew (hDlg, IDC_CATWEASEL, en);
+ ew (hDlg, IDC_NETDEVICE, en);
+ ew (hDlg, IDC_SANA2, en);
+ ew (hDlg, IDC_A2065, en);
+ ew (hDlg, IDC_NETDEVICE, en && (workprefs.a2065name[0] || workprefs.ne2000pciname[0]));
+
+ ShowWindow (GetDlgItem(hDlg, IDC_CS_SCSIMODE), SW_HIDE);
+ ew(hDlg, IDC_CS_CD32FMV, en);
+ ew(hDlg, IDC_CS_TOCCATA, en);
+ ew(hDlg, IDC_CS_TOCCATAMIXER, en && workprefs.sound_toccata);
+ ew (hDlg, IDC_CS_SCSIMODE, FALSE);
+
+ ew(hDlg, IDC_CPUBOARDROMFILE, workprefs.cpuboard_type != 0);
+ ew(hDlg, IDC_CPUBOARDROMCHOOSER, workprefs.cpuboard_type != 0);
+ ew(hDlg, IDC_CPUBOARDMEM, workprefs.cpuboard_type > 0);
+ ew(hDlg, IDC_CPUBOARDRAM, workprefs.cpuboard_type > 0);
+ ew(hDlg, IDC_CPUBOARD_SUBTYPE, workprefs.cpuboard_type);
+ const struct expansionboardsettings *cbs = cpuboards[workprefs.cpuboard_type].subtypes[workprefs.cpuboard_subtype].settings;
+ int i = 0;
+ if (cbs) {
+ while (cpuboard_settings_id[i] >= 0) {
+ if (!cbs[i].name)
+ break;
+ hide(hDlg, cpuboard_settings_id[i], 0);
+ i++;
+ }
+ }
+ while (cpuboard_settings_id[i] >= 0) {
+ hide(hDlg, cpuboard_settings_id[i], 1);
+ i++;
+ }
+}
+
+static void values_to_expansion2dlg (HWND hDlg)
+{
+ int cw;
+ int index;
+ struct boardromconfig *brc;
+
+ CheckDlgButton (hDlg, IDC_SOCKETS, workprefs.socket_emu);
+ 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_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);
+ CheckDlgButton(hDlg, IDC_CS_SCSIMODE, workprefs.scsi == 2);
+ cw = catweasel_detect ();
+ ew (hDlg, IDC_CATWEASEL, cw);
+ if (!cw && workprefs.catweasel < 100)
+ workprefs.catweasel = 0;
+
+ UAEREG *fkey = regcreatetree(NULL, _T("DetectedROMs"));
+ load_keyring(&workprefs, NULL);
+
+ values_to_expansion2_expansion_roms(hDlg, fkey);
+
+ values_to_expansion2_expansion_settings(hDlg);
+
+ if (workprefs.cpuboard_type) {
+ const struct cpuboardsubtype *cst = &cpuboards[workprefs.cpuboard_type].subtypes[workprefs.cpuboard_subtype];
+ brc = get_device_rom(&workprefs, ROMTYPE_CPUBOARD, 0, &index);
+ addromfiles(fkey, hDlg, IDC_CPUBOARDROMFILE, brc ? brc->roms[index].romfile : NULL,
+ cst->romtype, cst->romtype_extra);
+ } else {
+ SendDlgItemMessage(hDlg, IDC_CPUBOARDROMFILE, CB_RESETCONTENT, 0, 0);
+ }
+
+ regclosetree(fkey);
+
+ gui_set_string_cursor(scsiromselect_table, hDlg, IDC_SCSIROMSELECT, scsiromselected);
+ values_to_expansion2dlg_sub(hDlg);
+
+
+}
+
+static void updatecpuboardsubtypes(HWND hDlg)
+{
+ SendDlgItemMessage(hDlg, IDC_CPUBOARD_SUBTYPE, CB_RESETCONTENT, 0, 0);
+ for (int i = 0; cpuboards[workprefs.cpuboard_type].subtypes[i].name; i++) {
+ SendDlgItemMessage(hDlg, IDC_CPUBOARD_SUBTYPE, CB_ADDSTRING, 0, (LPARAM) cpuboards[workprefs.cpuboard_type].subtypes[i].name);
+ }
+ const struct expansionboardsettings *cbs = cpuboards[workprefs.cpuboard_type].subtypes[workprefs.cpuboard_subtype].settings;
+ int i = 0;
+ if (cbs) {
+ for (i = 0; cbs[i].name; i++) {
+ int id = cpuboard_settings_id[i];
+ if (id < 0)
+ break;
+ SetWindowText(GetDlgItem(hDlg, id), cbs[i].name);
+ }
+ }
+ while (cpuboard_settings_id[i] >= 0) {
+ int id = cpuboard_settings_id[i];
+ SetWindowText(GetDlgItem(hDlg, id), _T("-"));
+ i++;
+ }
+}
+
+static void expansion2filebuttons(HWND hDlg, WPARAM wParam, TCHAR *path)
+{
+ switch (LOWORD(wParam))
+ {
+ case IDC_SCSIROMCHOOSER:
+ DiskSelection(hDlg, IDC_SCSIROMFILE, 6, &workprefs, path);
+ values_to_expansion2dlg(hDlg);
+ break;
+ case IDC_CPUBOARDROMCHOOSER:
+ DiskSelection(hDlg, IDC_CPUBOARDROMFILE, 6, &workprefs, path);
+ values_to_expansion2dlg(hDlg);
+ break;
+ }
+}
+
+
+static INT_PTR CALLBACK Expansion2DlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ int v, val;
+ TCHAR tmp[100];
+ static int recursive = 0;
+ static int enumerated;
+
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ {
+ recursive++;
+ pages[EXPANSION2_ID] = hDlg;
+ currentpage = EXPANSION2_ID;
+ int ids[] = { IDC_SCSIROMFILE, IDC_CPUBOARDROMFILE, -1 };
+ setmultiautocomplete(hDlg, ids);
+ if (!enumerated) {
+ ethernet_enumerate(ndd, NULL);
+ for (int i = 0; ndd[i]; i++) {
+ struct netdriverdata *n = ndd[i];
+ if (!n->active)
+ continue;
+ if (n->type == UAENET_SLIRP) {
+ WIN32GUI_LoadUIString(IDS_SLIRP, tmp, sizeof tmp / sizeof(TCHAR));
+ n->desc = my_strdup(tmp);
+ }
+ else if (n->type == UAENET_SLIRP_INBOUND) {
+ WIN32GUI_LoadUIString(IDS_SLIRP_INBOUND, tmp, sizeof tmp / sizeof(TCHAR));
+ n->desc = my_strdup(tmp);
+ }
+ }
+ enumerated = 1;
+ }
+ SendDlgItemMessage(hDlg, IDC_CPUBOARD_TYPE, CB_RESETCONTENT, 0, 0);
+ for (int i = 0; cpuboards[i].name; i++) {
+ SendDlgItemMessage(hDlg, IDC_CPUBOARD_TYPE, CB_ADDSTRING, 0, (LPARAM) cpuboards[i].name);
+ }
+
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTCAT, CB_RESETCONTENT, 0, 0);
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTCAT, CB_ADDSTRING, 0, (LPARAM) _T("SCSI Controllers"));
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTCAT, CB_ADDSTRING, 0, (LPARAM) _T("IDE Controllers"));
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTCAT, CB_ADDSTRING, 0, (LPARAM) _T("SASI Controllers"));
+ SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTCAT, CB_ADDSTRING, 0, (LPARAM) _T("PCI Bridges"));
+ hide(hDlg, IDC_SCSIROMSELECTED, 1);
+ expansion_net(hDlg);
+ init_expansion2(hDlg);
+ updatecpuboardsubtypes(hDlg);
+ setcpuboardmemsize(hDlg);
+ recursive--;
+ }
+
+ case WM_USER:
+ recursive++;
+ values_to_expansion2dlg(hDlg);
+ enable_for_expansion2dlg(hDlg);
+ recursive--;
+ break;
+
+ case WM_COMMAND:
+ {
+ if (recursive > 0)
+ break;
+ recursive++;
+ switch (LOWORD(wParam))
+ {
+ case IDC_EXPANSION_SETTING1:
+ case IDC_EXPANSION_SETTING2:
+ case IDC_EXPANSION_SETTING3:
+ values_from_expansion2dlg(hDlg);
+ break;
+ case IDC_SCSIROMFILEAUTOBOOT:
+ values_from_expansion2dlg(hDlg);
+ break;
+ case IDC_SOCKETS:
+ workprefs.socket_emu = ischecked(hDlg, IDC_SOCKETS);
+ break;
+ case IDC_SCSIDEVICE:
+ workprefs.scsi = ischecked(hDlg, IDC_SCSIDEVICE);
+ enable_for_expansion2dlg(hDlg);
+ break;
+ case IDC_SANA2:
+ 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_expansion2dlg(hDlg);
+ } else {
+ if (!workprefs.ne2000pciname[0])
+ ew(hDlg, IDC_NETDEVICE, FALSE);
+ workprefs.a2065name[0] = 0;
+ enable_for_expansion2dlg(hDlg);
+ }
+ break;
+ case IDC_NE2000:
+ if (ischecked(hDlg, IDC_NE2000)) {
+ _tcscpy(workprefs.ne2000pciname, _T("none"));
+ expansion_net(hDlg);
+ enable_for_expansion2dlg(hDlg);
+ } else {
+ if (!workprefs.a2065name[0])
+ ew(hDlg, IDC_NETDEVICE, FALSE);
+ workprefs.ne2000pciname[0] = 0;
+ enable_for_expansion2dlg(hDlg);
+ }
+ break;
+ case IDC_CATWEASEL:
+ workprefs.catweasel = ischecked(hDlg, IDC_CATWEASEL) ? -1 : 0;
+ break;
+ case IDC_CS_CD32FMV:
+ workprefs.cs_cd32fmv = ischecked(hDlg, IDC_CS_CD32FMV) ? 1 : 0;
+ break;
+ case IDC_CS_TOCCATA:
+ workprefs.sound_toccata = ischecked(hDlg, IDC_CS_TOCCATA) ? 1 : 0;
+ if (!workprefs.sound_toccata)
+ workprefs.sound_toccata_mixer = false;
+ enable_for_expansion2dlg(hDlg);
+ break;
+ case IDC_CS_TOCCATAMIXER:
+ workprefs.sound_toccata_mixer = ischecked(hDlg, IDC_CS_TOCCATAMIXER) ? 1 : 0;
+ break;
+ case IDC_SCSIROMSELECTED:
+ values_from_expansion2dlg(hDlg);
+ break;
+ }
+ expansion2filebuttons(hDlg, wParam, NULL);
+ if (HIWORD(wParam) == CBN_SELENDOK || HIWORD(wParam) == CBN_KILLFOCUS || HIWORD(wParam) == CBN_EDITCHANGE) {
+ switch (LOWORD(wParam))
+ {
+ case IDC_SCSIROMFILE:
+ case IDC_SCSIROMID:
+ case IDC_CPUBOARDROMFILE:
+ case IDC_CPUBOARDROMSUBSELECT:
+ values_from_expansion2dlg(hDlg);
+ values_to_expansion2_expansion_settings(hDlg);
+ break;
+ case IDC_SCSIROMSUBSELECT:
+ values_from_expansion2dlg(hDlg);
+ values_to_expansion2_expansion_roms(hDlg, NULL);
+ values_to_expansion2_expansion_settings(hDlg);
+ break;
+ case IDC_SCSIROMSELECTCAT:
+ val = SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTCAT, CB_GETCURSEL, 0, 0);
+ if (val != CB_ERR) {
+ scsiromselectedcatnum = val;
+ scsiromselected = 0;
+ init_expansion2(hDlg);
+ values_to_expansion2_expansion_roms(hDlg, NULL);
+ values_to_expansion2_expansion_settings(hDlg);
+ values_to_expansion2dlg_sub(hDlg);
+ }
+ break;
+ case IDC_SCSIROMSELECTNUM:
+ case IDC_SCSIROMSELECT:
+ val = SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTNUM, CB_GETCURSEL, 0, 0);
+ if (val != CB_ERR)
+ scsiromselectednum = val;
+ val = gui_get_string_cursor(scsiromselect_table, hDlg, IDC_SCSIROMSELECT);
+ if (val != CB_ERR) {
+ scsiromselected = val;
+ values_to_expansion2_expansion_roms(hDlg, NULL);
+ values_to_expansion2_expansion_settings(hDlg);
+ values_to_expansion2dlg_sub(hDlg);
+ }
+ break;
+ case IDC_CPUBOARD_TYPE:
+ v = SendDlgItemMessage(hDlg, IDC_CPUBOARD_TYPE, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR && v != workprefs.cpuboard_type) {
+ workprefs.cpuboard_type = v;
+ workprefs.cpuboard_subtype = 0;
+ workprefs.cpuboard_settings = 0;
+ updatecpuboardsubtypes(hDlg);
+ if (is_ppc_cpu(&workprefs)) {
+ workprefs.ppc_mode = 2;
+ } else if (workprefs.ppc_mode == 2) {
+ workprefs.ppc_mode = 0;
+ }
+ built_in_cpuboard_prefs(&workprefs);
+ setcpuboardmemsize(hDlg);
+ enable_for_expansion2dlg(hDlg);
+ values_to_expansion2dlg(hDlg);
+ }
+ break;
+ case IDC_CPUBOARD_SUBTYPE:
+ v = SendDlgItemMessage(hDlg, IDC_CPUBOARD_SUBTYPE, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR && v != workprefs.cpuboard_subtype) {
+ workprefs.cpuboard_subtype = v;
+ workprefs.cpuboard_settings = 0;
+ if (is_ppc_cpu(&workprefs)) {
+ workprefs.ppc_mode = 2;
+ } else if (workprefs.ppc_mode == 2) {
+ workprefs.ppc_mode = 0;
+ }
+ built_in_cpuboard_prefs(&workprefs);
+ setcpuboardmemsize(hDlg);
+ enable_for_expansion2dlg(hDlg);
+ values_to_expansion2dlg(hDlg);
+ }
+ break;
+ case IDC_NETDEVICE:
+ v = SendDlgItemMessage(hDlg, IDC_NETDEVICE, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR) {
+ const TCHAR *s;
+ if (v == 0) {
+ s = _T("none");
+ }
+ else if (ndd) {
+ v--;
+ s = ndd[v]->name;
+ }
+ if (ischecked(hDlg, IDC_A2065))
+ _tcscpy(workprefs.a2065name, s);
+ if (ischecked(hDlg, IDC_NE2000))
+ _tcscpy(workprefs.ne2000pciname, s);
+ }
+ break;
+ }
+ }
+ for (int i = 0; cpuboard_settings_id[i] >= 0; i++) {
+ workprefs.cpuboard_settings &= ~(1 << i);
+ if (ischecked(hDlg, cpuboard_settings_id[i]))
+ workprefs.cpuboard_settings |= 1 << i;
+ }
+ recursive--;
+ }
+ break;
+ case WM_HSCROLL:
+ workprefs.cpuboardmem1_size = memsizes[msi_cpuboard[SendMessage(GetDlgItem(hDlg, IDC_CPUBOARDMEM), TBM_GETPOS, 0, 0)]];
+ setcpuboardmemsize(hDlg);
+ break;
+ }
+ return FALSE;
+}
+
+static void enable_for_expansiondlg(HWND hDlg)
+{
+ int z3 = true;
+ int en;
+
+ en = !!full_property_sheet;
+
+ int rtg = workprefs.rtgmem_size && full_property_sheet && workprefs.rtgmem_type < GFXBOARD_HARDWARE;
+ int rtg2 = workprefs.rtgmem_size || workprefs.rtgmem_type >= GFXBOARD_HARDWARE;
+ int rtg3 = workprefs.rtgmem_size && workprefs.rtgmem_type < GFXBOARD_HARDWARE;
+ int rtg4 = workprefs.rtgmem_type < GFXBOARD_HARDWARE;
+
+ ew(hDlg, IDC_P96RAM, rtg2);
+ ew(hDlg, IDC_P96MEM, rtg2);
+ ew(hDlg, IDC_RTG_Z2Z3, z3);
+ ew(hDlg, IDC_RTG_8BIT, rtg);
+ ew(hDlg, IDC_RTG_16BIT, rtg);
+ ew(hDlg, IDC_RTG_24BIT, rtg);
+ ew(hDlg, IDC_RTG_32BIT, rtg);
+ ew(hDlg, IDC_RTG_MATCH_DEPTH, rtg3);
+ ew(hDlg, IDC_RTG_SCALE, rtg2);
+ ew(hDlg, IDC_RTG_CENTER, rtg2);
+ ew(hDlg, IDC_RTG_SCALE_ALLOW, rtg2);
+ ew(hDlg, IDC_RTG_SCALE_ASPECTRATIO, rtg2);
+ ew(hDlg, IDC_RTG_VBLANKRATE, rtg2);
+ ew(hDlg, IDC_RTG_BUFFERCNT, rtg2);
+ ew(hDlg, IDC_RTG_DISPLAYSELECT, rtg2);
+ ew(hDlg, IDC_RTG_VBINTERRUPT, rtg3);
+ if (!workprefs.gfx_api) {
+ workprefs.rtg_hardwaresprite = false;
+ CheckDlgButton(hDlg, IDC_RTG_HWSPRITE, FALSE);
+ }
+ ew(hDlg, IDC_RTG_HWSPRITE, rtg3 && workprefs.gfx_api);
+}
+
+static void values_to_expansiondlg(HWND hDlg)
+{
+ SendDlgItemMessage(hDlg, IDC_RTG_BUFFERCNT, CB_SETCURSEL, workprefs.gfx_apmode[1].gfx_backbuffers == 0 ? 0 : workprefs.gfx_apmode[1].gfx_backbuffers - 1, 0);
+
+ int min_mem = MIN_P96_MEM;
+ int max_mem = MAX_P96_MEM_Z3;
+ if (!gfxboard_is_z3(workprefs.rtgmem_type)) {
+ int v = workprefs.rtgmem_size;
+ max_mem = 0;
+ workprefs.rtgmem_size = 1024 * 1024;
+ while (getz2size(&workprefs) > 0) {
+ workprefs.rtgmem_size *= 2;
+ max_mem++;
+ }
+ if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v > gfxboard_get_vram_max(workprefs.rtgmem_type))
+ v = gfxboard_get_vram_max(workprefs.rtgmem_type);
+ if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v < gfxboard_get_vram_min(workprefs.rtgmem_type))
+ v = gfxboard_get_vram_min(workprefs.rtgmem_type);
+ workprefs.rtgmem_size = v;
+// if (workprefs.rtgmem_size > 8 * 1024 * 1024)
+// mem_size = 8 * 1024 * 1024;
+ while (getz2size(&workprefs) < 0 && workprefs.rtgmem_size > 0)
+ workprefs.rtgmem_size -= 1024 * 1024;
+ } else {
+ int v = workprefs.rtgmem_size;
+ if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v > gfxboard_get_vram_max(workprefs.rtgmem_type))
+ v = gfxboard_get_vram_max(workprefs.rtgmem_type);
+ if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE && v < gfxboard_get_vram_min(workprefs.rtgmem_type))
+ v = gfxboard_get_vram_min(workprefs.rtgmem_type);
+ workprefs.rtgmem_size = v;
+ }
+ if (workprefs.rtgmem_type >= GFXBOARD_HARDWARE) {
+ switch (gfxboard_get_vram_min(workprefs.rtgmem_type)) {
+ case 0x00100000: min_mem = 1; break;
+ case 0x00200000: min_mem = 2; break;
+ case 0x00400000: min_mem = 3; break;
+ }
+ switch (gfxboard_get_vram_max(workprefs.rtgmem_type)) {
+ case 0x00100000: max_mem = 1; break;
+ case 0x00200000: max_mem = 2; break;
+ case 0x00400000: max_mem = 3; break;
+ }
+ }
+ SendDlgItemMessage(hDlg, IDC_P96MEM, TBM_SETRANGE, TRUE, MAKELONG(min_mem, max_mem));
+ int mem_size = 0;
+ switch (workprefs.rtgmem_size) {
+ case 0x00000000: mem_size = 0; break;
+ case 0x00100000: mem_size = 1; break;
+ case 0x00200000: mem_size = 2; break;
+ case 0x00400000: mem_size = 3; break;
+ case 0x00800000: mem_size = 4; break;
+ case 0x01000000: mem_size = 5; break;
+ case 0x02000000: mem_size = 6; break;
+ case 0x04000000: mem_size = 7; break;
+ case 0x08000000: mem_size = 8; break;
+ case 0x10000000: mem_size = 9; break;
+ case 0x20000000: mem_size = 10; break;
+ case 0x40000000: mem_size = 11; break;
+ }
+ SendDlgItemMessage(hDlg, IDC_P96MEM, TBM_SETPOS, TRUE, mem_size);
+ SetDlgItemText(hDlg, IDC_P96RAM, memsize_names[msi_gfx[mem_size]]);
+
+ SendDlgItemMessage(hDlg, IDC_RTG_Z2Z3, CB_SETCURSEL, workprefs.rtgmem_size == 0 ? 0 : workprefs.rtgmem_type + 1, 0);
+ SendDlgItemMessage(hDlg, IDC_RTG_8BIT, CB_SETCURSEL, (workprefs.picasso96_modeflags & RGBFF_CLUT) ? 1 : 0, 0);
+ SendDlgItemMessage(hDlg, IDC_RTG_16BIT, CB_SETCURSEL,
+ (manybits(workprefs.picasso96_modeflags, RGBFF_R5G6B5PC | RGBFF_R5G6B5PC | RGBFF_R5G6B5 | RGBFF_R5G5B5 | RGBFF_B5G6R5PC | RGBFF_B5G5R5PC)) ? 1 :
+ (workprefs.picasso96_modeflags & RGBFF_R5G6B5PC) ? 2 :
+ (workprefs.picasso96_modeflags & RGBFF_R5G5B5PC) ? 3 :
+ (workprefs.picasso96_modeflags & RGBFF_R5G6B5) ? 4 :
+ (workprefs.picasso96_modeflags & RGBFF_R5G5B5) ? 5 :
+ (workprefs.picasso96_modeflags & RGBFF_B5G6R5PC) ? 6 :
+ (workprefs.picasso96_modeflags & RGBFF_B5G5R5PC) ? 7 : 0, 0);
+ SendDlgItemMessage(hDlg, IDC_RTG_24BIT, CB_SETCURSEL,
+ (manybits(workprefs.picasso96_modeflags, RGBFF_R8G8B8 | RGBFF_B8G8R8)) ? 1 :
+ (workprefs.picasso96_modeflags & RGBFF_R8G8B8) ? 2 :
+ (workprefs.picasso96_modeflags & RGBFF_B8G8R8) ? 3 : 0, 0);
+ SendDlgItemMessage(hDlg, IDC_RTG_32BIT, CB_SETCURSEL,
+ (manybits(workprefs.picasso96_modeflags, RGBFF_A8R8G8B8 | RGBFF_A8B8G8R8 | RGBFF_R8G8B8A8 | RGBFF_B8G8R8A8)) ? 1 :
+ (workprefs.picasso96_modeflags & RGBFF_A8R8G8B8) ? 2 :
+ (workprefs.picasso96_modeflags & RGBFF_A8B8G8R8) ? 3 :
+ (workprefs.picasso96_modeflags & RGBFF_R8G8B8A8) ? 4 :
+ (workprefs.picasso96_modeflags & RGBFF_B8G8R8A8) ? 5 : 0, 0);
+ if (workprefs.win32_rtgvblankrate <= 0 ||
+ workprefs.win32_rtgvblankrate == 50 ||
+ workprefs.win32_rtgvblankrate == 60 ||
+ workprefs.win32_rtgvblankrate == 70 ||
+ workprefs.win32_rtgvblankrate == 75) {
+ SendDlgItemMessage(hDlg, IDC_RTG_VBLANKRATE, CB_SETCURSEL,
+ (workprefs.win32_rtgvblankrate == 0) ? 0 :
+ (workprefs.win32_rtgvblankrate == -1) ? 1 :
+ (workprefs.win32_rtgvblankrate == -2) ? 0 :
+ (workprefs.win32_rtgvblankrate == 50) ? 2 :
+ (workprefs.win32_rtgvblankrate == 60) ? 3 :
+ (workprefs.win32_rtgvblankrate == 70) ? 4 :
+ (workprefs.win32_rtgvblankrate == 75) ? 5 : 0, 0);
+ } else {
+ TCHAR tmp[10];
+ _stprintf(tmp, _T("%d"), workprefs.win32_rtgvblankrate);
+ SendDlgItemMessage(hDlg, IDC_RTG_VBLANKRATE, WM_SETTEXT, 0, (LPARAM) tmp);
+ }
+
+
+ CheckDlgButton(hDlg, IDC_RTG_SCALE, workprefs.gf[1].gfx_filter_autoscale == RTG_MODE_SCALE);
+ CheckDlgButton(hDlg, IDC_RTG_CENTER, workprefs.gf[1].gfx_filter_autoscale == RTG_MODE_CENTER);
+ CheckDlgButton(hDlg, IDC_RTG_SCALE_ALLOW, workprefs.win32_rtgallowscaling);
+ CheckDlgButton(hDlg, IDC_RTG_MATCH_DEPTH, workprefs.win32_rtgmatchdepth);
+ CheckDlgButton(hDlg, IDC_RTG_VBINTERRUPT, workprefs.rtg_hardwareinterrupt);
+ CheckDlgButton(hDlg, IDC_RTG_HWSPRITE, workprefs.rtg_hardwaresprite);
+
+ SendDlgItemMessage(hDlg, IDC_RTG_SCALE_ASPECTRATIO, CB_SETCURSEL,
+ (workprefs.win32_rtgscaleaspectratio == 0) ? 0 :
+ (workprefs.win32_rtgscaleaspectratio < 0) ? 1 :
+ getaspectratioindex(workprefs.win32_rtgscaleaspectratio) + 2, 0);
+}
+
+static INT_PTR CALLBACK ExpansionDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ int v;
+ TCHAR tmp[100];
+ static int recursive = 0;
+ static int enumerated;
+
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ pages[EXPANSION_ID] = hDlg;
+ currentpage = EXPANSION_ID;
+
+ init_displays_combo (hDlg, true);
+
+ SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_RESETCONTENT, 0, 0);
+ SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("-"));
+ SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("UAE Zorro II"));
+ SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("UAE Zorro III (*)"));
+ SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Picasso II Zorro II"));
+ SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Picasso II+ Zorro II"));
+ SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Piccolo Zorro II"));
SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Piccolo Zorro III"));
SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Piccolo SD64 Zorro II"));
SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("Piccolo SD64 Zorro III"));
SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_ADDSTRING, 0, (LPARAM)_T("60"));
SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_ADDSTRING, 0, (LPARAM)_T("70"));
SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_ADDSTRING, 0, (LPARAM)_T("75"));
- SendDlgItemMessage(hDlg, IDC_RTG_BUFFERCNT, CB_RESETCONTENT, 0, 0);
- WIN32GUI_LoadUIString(IDS_BUFFER_DOUBLE, tmp, sizeof tmp / sizeof (TCHAR));
- SendDlgItemMessage(hDlg, IDC_RTG_BUFFERCNT, CB_ADDSTRING, 0, (LPARAM)tmp);
- WIN32GUI_LoadUIString(IDS_BUFFER_TRIPLE, tmp, sizeof tmp / sizeof (TCHAR));
- SendDlgItemMessage(hDlg, IDC_RTG_BUFFERCNT, CB_ADDSTRING, 0, (LPARAM)tmp);
-
- case WM_USER:
- recursive++;
- values_to_expansiondlg (hDlg);
- enable_for_expansiondlg (hDlg);
- values_to_memorydlg (hDlg);
- enable_for_memorydlg (hDlg);
- recursive--;
- break;
-
- case WM_HSCROLL:
- workprefs.rtgmem_size = memsizes[msi_gfx[SendMessage (GetDlgItem (hDlg, IDC_P96MEM), TBM_GETPOS, 0, 0)]];
- values_to_memorydlg (hDlg);
- enable_for_memorydlg (hDlg);
- break;
-
- case WM_COMMAND:
- {
- if (recursive > 0)
- break;
- recursive++;
- switch (LOWORD (wParam))
- {
- case IDC_RTG_MATCH_DEPTH:
- workprefs.win32_rtgmatchdepth = ischecked (hDlg, IDC_RTG_MATCH_DEPTH);
- break;
- case IDC_RTG_SCALE:
- workprefs.gf[1].gfx_filter_autoscale = ischecked(hDlg, IDC_RTG_SCALE) ? RTG_MODE_SCALE : 0;
- setchecked (hDlg, IDC_RTG_CENTER, false);
- break;
- case IDC_RTG_CENTER:
- workprefs.gf[1].gfx_filter_autoscale = ischecked(hDlg, IDC_RTG_CENTER) ? RTG_MODE_CENTER : 0;
- setchecked (hDlg, IDC_RTG_SCALE, false);
- break;
- case IDC_RTG_SCALE_ALLOW:
- workprefs.win32_rtgallowscaling = ischecked (hDlg, IDC_RTG_SCALE_ALLOW);
- break;
- case IDC_RTG_VBINTERRUPT:
- workprefs.rtg_hardwareinterrupt = ischecked (hDlg, IDC_RTG_VBINTERRUPT);
- break;
- case IDC_RTG_HWSPRITE:
- workprefs.rtg_hardwaresprite = ischecked (hDlg, IDC_RTG_HWSPRITE);
- break;
- case IDC_SOCKETS:
- workprefs.socket_emu = ischecked (hDlg, IDC_SOCKETS);
- break;
- case IDC_SCSIDEVICE:
- workprefs.scsi = ischecked (hDlg, IDC_SCSIDEVICE);
- enable_for_expansiondlg (hDlg);
- break;
- case IDC_SANA2:
- 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 {
- 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;
- case IDC_CS_CD32FMV:
- workprefs.cs_cd32fmv = ischecked(hDlg, IDC_CS_CD32FMV) ? 1 : 0;
- break;
- case IDC_CS_TOCCATA:
- workprefs.sound_toccata = ischecked(hDlg, IDC_CS_TOCCATA) ? 1 : 0;
- if (!workprefs.sound_toccata)
- workprefs.sound_toccata_mixer = false;
- enable_for_expansiondlg(hDlg);
- break;
- case IDC_CS_TOCCATAMIXER:
- workprefs.sound_toccata_mixer = ischecked(hDlg, IDC_CS_TOCCATAMIXER) ? 1 : 0;
- break;
- }
- if (HIWORD (wParam) == CBN_SELENDOK || HIWORD (wParam) == CBN_KILLFOCUS || HIWORD (wParam) == CBN_EDITCHANGE) {
- uae_u32 mask = workprefs.picasso96_modeflags;
- switch (LOWORD (wParam))
- {
- case IDC_RTG_DISPLAYSELECT:
- get_displays_combo (hDlg, true);
- break;
- case IDC_RTG_BUFFERCNT:
- v = SendDlgItemMessage (hDlg, IDC_RTG_BUFFERCNT, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR) {
- v++;
- workprefs.gfx_apmode[1].gfx_backbuffers = v;
- }
- break;
- case IDC_RTG_SCALE_ASPECTRATIO:
- v = SendDlgItemMessage (hDlg, IDC_RTG_SCALE_ASPECTRATIO, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR) {
- if (v == 0)
- workprefs.win32_rtgscaleaspectratio = 0;
- else if (v == 1)
- workprefs.win32_rtgscaleaspectratio = -1;
- else if (v >= 2)
- workprefs.win32_rtgscaleaspectratio = getaspectratio (v - 2);
- }
- break;
- case IDC_RTG_Z2Z3:
- v = SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR) {
- if (v == 0) {
- workprefs.rtgmem_type = 1;
- workprefs.rtgmem_size = 0;
- } else {
- workprefs.rtgmem_type = v - 1;
- if (workprefs.rtgmem_size == 0)
- workprefs.rtgmem_size = 4096 * 1024;
- }
- enable_for_expansiondlg (hDlg);
- }
- break;
- case IDC_RTG_8BIT:
- v = SendDlgItemMessage (hDlg, IDC_RTG_8BIT, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR) {
- mask &= ~RGBFF_CLUT;
- if (v == 1)
- mask |= RGBFF_CLUT;
- }
- break;
- case IDC_RTG_16BIT:
- v = SendDlgItemMessage (hDlg, IDC_RTG_16BIT, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR) {
- mask &= ~(RGBFF_R5G6B5PC | RGBFF_R5G5B5PC | RGBFF_R5G6B5 | RGBFF_R5G5B5 | RGBFF_B5G6R5PC | RGBFF_B5G5R5PC);
- if (v == 1)
- mask |= RGBFF_R5G6B5PC | RGBFF_R5G6B5PC | RGBFF_R5G5B5PC | RGBFF_R5G6B5 | RGBFF_R5G5B5 | RGBFF_B5G6R5PC | RGBFF_B5G5R5PC;
- if (v == 2)
- mask |= RGBFF_R5G6B5PC;
- if (v == 3)
- mask |= RGBFF_R5G5B5PC;
- if (v == 4)
- mask |= RGBFF_R5G6B5;
- if (v == 5)
- mask |= RGBFF_R5G5B5;
- if (v == 6)
- mask |= RGBFF_B5G6R5PC;
- if (v == 7)
- mask |= RGBFF_B5G5R5PC;
- }
- break;
- case IDC_RTG_24BIT:
- v = SendDlgItemMessage (hDlg, IDC_RTG_24BIT, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR) {
- mask &= ~(RGBFF_R8G8B8 | RGBFF_B8G8R8);
- if (v == 1)
- mask |= RGBFF_R8G8B8 | RGBFF_B8G8R8;
- if (v == 2)
- mask |= RGBFF_R8G8B8;
- if (v == 3)
- mask |= RGBFF_B8G8R8;
- }
- break;
- case IDC_RTG_32BIT:
- v = SendDlgItemMessage (hDlg, IDC_RTG_32BIT, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR) {
- mask &= ~(RGBFF_A8R8G8B8 | RGBFF_A8B8G8R8 | RGBFF_R8G8B8A8 | RGBFF_B8G8R8A8);
- if (v == 1)
- mask |= RGBFF_A8R8G8B8 | RGBFF_A8B8G8R8 | RGBFF_R8G8B8A8 | RGBFF_B8G8R8A8;
- if (v == 2)
- mask |= RGBFF_A8R8G8B8;
- if (v == 3)
- mask |= RGBFF_A8B8G8R8;
- if (v == 4)
- mask |= RGBFF_R8G8B8A8;
- if (v == 5)
- mask |= RGBFF_B8G8R8A8;
- }
- break;
- case IDC_RTG_VBLANKRATE:
- tmp[0] = 0;
- v = SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR) {
- if (v == 0) {
- workprefs.win32_rtgvblankrate = 0;
- } else if (v == 1) {
- workprefs.win32_rtgvblankrate = -1;
- } else {
- v = SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_GETLBTEXT, (WPARAM)v, (LPARAM)tmp);
- }
- } else {
- v = SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, WM_GETTEXT, (WPARAM)sizeof tmp / sizeof (TCHAR), (LPARAM)tmp);
- }
- if (tmp[0])
- workprefs.win32_rtgvblankrate = _tstol (tmp);
- break;
- case IDC_NETDEVICE:
- v = SendDlgItemMessage (hDlg, IDC_NETDEVICE, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR) {
- const TCHAR *s;
- if (v == 0) {
- s = _T("none");
- } else if (ndd) {
- v--;
- s = ndd[v]->name;
- }
- if (ischecked(hDlg, IDC_A2065))
- _tcscpy(workprefs.a2065name, s);
- if (ischecked(hDlg, IDC_NE2000))
- _tcscpy(workprefs.ne2000pciname, s);
- }
- break;
-
- }
- workprefs.picasso96_modeflags = mask;
- values_to_memorydlg (hDlg);
- }
- recursive--;
- }
- break;
- }
- return FALSE;
-}
-
-static void updatecpuboardsubtypes(HWND hDlg)
-{
- SendDlgItemMessage (hDlg, IDC_CPUBOARD_SUBTYPE, CB_RESETCONTENT, 0, 0);
- for (int i = 0; cpuboards[workprefs.cpuboard_type].subtypes[i].name; i++) {
- SendDlgItemMessage(hDlg, IDC_CPUBOARD_SUBTYPE, CB_ADDSTRING, 0, (LPARAM)cpuboards[workprefs.cpuboard_type].subtypes[i].name);
- }
- const struct expansionboardsettings *cbs = cpuboards[workprefs.cpuboard_type].subtypes[workprefs.cpuboard_subtype].settings;
- int i = 0;
- if (cbs) {
- for (i = 0; cbs[i].name; i++) {
- int id = cpuboard_settings_id[i];
- if (id < 0)
- break;
- SetWindowText (GetDlgItem(hDlg, id), cbs[i].name);
- }
- }
- while (cpuboard_settings_id[i] >= 0) {
- int id = cpuboard_settings_id[i];
- SetWindowText (GetDlgItem(hDlg, id), _T("-"));
- i++;
- }
-}
-
-static INT_PTR CALLBACK MemoryDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- static int recursive = 0;
- int v;
-
- switch (msg)
- {
- case WM_INITDIALOG:
- recursive++;
- pages[MEMORY_ID] = hDlg;
- currentpage = MEMORY_ID;
- SendDlgItemMessage (hDlg, IDC_CHIPMEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_CHIP_MEM, MAX_CHIP_MEM));
- SendDlgItemMessage (hDlg, IDC_FASTMEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_FAST_MEM, MAX_FAST_MEM));
- SendDlgItemMessage (hDlg, IDC_FASTMEM2, TBM_SETRANGE, TRUE, MAKELONG (MIN_FAST_MEM, MAX_FAST_MEM));
- SendDlgItemMessage (hDlg, IDC_SLOWMEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_SLOW_MEM, MAX_SLOW_MEM));
- SendDlgItemMessage (hDlg, IDC_Z3FASTMEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_Z3_MEM, MAX_Z3_MEM));
- SendDlgItemMessage (hDlg, IDC_Z3CHIPMEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_Z3_MEM, MAX_Z3_CHIPMEM));
- SendDlgItemMessage (hDlg, IDC_MBMEM1, TBM_SETRANGE, TRUE, MAKELONG (MIN_MB_MEM, MAX_MBL_MEM));
- SendDlgItemMessage (hDlg, IDC_MBMEM2, TBM_SETRANGE, TRUE, MAKELONG (MIN_MB_MEM, MAX_MBH_MEM));
- CheckDlgButton(hDlg, IDC_FASTMEMAUTOCONFIG, workprefs.fastmem_autoconfig);
- SendDlgItemMessage (hDlg, IDC_Z3MAPPING, CB_RESETCONTENT, 0, 0);
- SendDlgItemMessage (hDlg, IDC_Z3MAPPING, CB_ADDSTRING, 0, (LPARAM)_T("Automatic (*)"));
- SendDlgItemMessage(hDlg, IDC_Z3MAPPING, CB_ADDSTRING, 0, (LPARAM)_T("UAE"));
- SendDlgItemMessage(hDlg, IDC_Z3MAPPING, CB_ADDSTRING, 0, (LPARAM)_T("Real"));
- SendDlgItemMessage (hDlg, IDC_Z3MAPPING, CB_SETCURSEL, workprefs.z3_mapping_mode, 0);
- SendDlgItemMessage (hDlg, IDC_CPUBOARD_TYPE, CB_RESETCONTENT, 0, 0);
- for (int i = 0; cpuboards[i].name; i++) {
- SendDlgItemMessage(hDlg, IDC_CPUBOARD_TYPE, CB_ADDSTRING, 0, (LPARAM)cpuboards[i].name);
- }
- updatecpuboardsubtypes(hDlg);
- setcpuboardmemsize(hDlg);
- recursive--;
+ SendDlgItemMessage(hDlg, IDC_RTG_BUFFERCNT, CB_RESETCONTENT, 0, 0);
+ WIN32GUI_LoadUIString(IDS_BUFFER_DOUBLE, tmp, sizeof tmp / sizeof (TCHAR));
+ SendDlgItemMessage(hDlg, IDC_RTG_BUFFERCNT, CB_ADDSTRING, 0, (LPARAM)tmp);
+ WIN32GUI_LoadUIString(IDS_BUFFER_TRIPLE, tmp, sizeof tmp / sizeof (TCHAR));
+ SendDlgItemMessage(hDlg, IDC_RTG_BUFFERCNT, CB_ADDSTRING, 0, (LPARAM)tmp);
case WM_USER:
recursive++;
- fix_values_memorydlg ();
- values_to_memorydlg (hDlg);
- enable_for_memorydlg (hDlg);
+ values_to_expansiondlg (hDlg);
+ enable_for_expansiondlg (hDlg);
recursive--;
break;
+ case WM_HSCROLL:
+ workprefs.rtgmem_size = memsizes[msi_gfx[SendMessage (GetDlgItem (hDlg, IDC_P96MEM), TBM_GETPOS, 0, 0)]];
+ values_to_expansiondlg(hDlg);
+ enable_for_expansiondlg(hDlg);
+ break;
+
case WM_COMMAND:
- if (!recursive) {
+ {
+ if (recursive > 0)
+ break;
recursive++;
- if (HIWORD (wParam) == CBN_SELCHANGE || HIWORD (wParam) == CBN_KILLFOCUS) {
+ switch (LOWORD (wParam))
+ {
+ case IDC_RTG_MATCH_DEPTH:
+ workprefs.win32_rtgmatchdepth = ischecked (hDlg, IDC_RTG_MATCH_DEPTH);
+ break;
+ case IDC_RTG_SCALE:
+ workprefs.gf[1].gfx_filter_autoscale = ischecked(hDlg, IDC_RTG_SCALE) ? RTG_MODE_SCALE : 0;
+ setchecked (hDlg, IDC_RTG_CENTER, false);
+ break;
+ case IDC_RTG_CENTER:
+ workprefs.gf[1].gfx_filter_autoscale = ischecked(hDlg, IDC_RTG_CENTER) ? RTG_MODE_CENTER : 0;
+ setchecked (hDlg, IDC_RTG_SCALE, false);
+ break;
+ case IDC_RTG_SCALE_ALLOW:
+ workprefs.win32_rtgallowscaling = ischecked (hDlg, IDC_RTG_SCALE_ALLOW);
+ break;
+ case IDC_RTG_VBINTERRUPT:
+ workprefs.rtg_hardwareinterrupt = ischecked (hDlg, IDC_RTG_VBINTERRUPT);
+ break;
+ case IDC_RTG_HWSPRITE:
+ workprefs.rtg_hardwaresprite = ischecked (hDlg, IDC_RTG_HWSPRITE);
+ break;
+ }
+ if (HIWORD (wParam) == CBN_SELENDOK || HIWORD (wParam) == CBN_KILLFOCUS || HIWORD (wParam) == CBN_EDITCHANGE) {
+ uae_u32 mask = workprefs.picasso96_modeflags;
switch (LOWORD (wParam))
{
- case IDC_Z3MAPPING:
- v = SendDlgItemMessage (hDlg, IDC_Z3MAPPING, CB_GETCURSEL, 0, 0L);
+ case IDC_RTG_DISPLAYSELECT:
+ get_displays_combo (hDlg, true);
+ break;
+ case IDC_RTG_BUFFERCNT:
+ v = SendDlgItemMessage (hDlg, IDC_RTG_BUFFERCNT, CB_GETCURSEL, 0, 0L);
if (v != CB_ERR) {
- workprefs.z3_mapping_mode = v;
+ v++;
+ workprefs.gfx_apmode[1].gfx_backbuffers = v;
}
break;
- case IDC_CPUBOARD_TYPE:
- v = SendDlgItemMessage (hDlg, IDC_CPUBOARD_TYPE, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR && v != workprefs.cpuboard_type) {
- workprefs.cpuboard_type = v;
- workprefs.cpuboard_subtype = 0;
- workprefs.cpuboard_settings = 0;
- updatecpuboardsubtypes(hDlg);
- if (is_ppc_cpu(&workprefs)) {
- workprefs.ppc_mode = 2;
- } else if (workprefs.ppc_mode == 2) {
- workprefs.ppc_mode = 0;
- }
- built_in_cpuboard_prefs(&workprefs);
- setcpuboardmemsize(hDlg);
- enable_for_memorydlg(hDlg);
+ case IDC_RTG_SCALE_ASPECTRATIO:
+ v = SendDlgItemMessage (hDlg, IDC_RTG_SCALE_ASPECTRATIO, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR) {
+ if (v == 0)
+ workprefs.win32_rtgscaleaspectratio = 0;
+ else if (v == 1)
+ workprefs.win32_rtgscaleaspectratio = -1;
+ else if (v >= 2)
+ workprefs.win32_rtgscaleaspectratio = getaspectratio (v - 2);
}
break;
- case IDC_CPUBOARD_SUBTYPE:
- v = SendDlgItemMessage (hDlg, IDC_CPUBOARD_SUBTYPE, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR && v != workprefs.cpuboard_subtype) {
- workprefs.cpuboard_subtype = v;
- workprefs.cpuboard_settings = 0;
- if (is_ppc_cpu(&workprefs)) {
- workprefs.ppc_mode = 2;
- } else if (workprefs.ppc_mode == 2) {
- workprefs.ppc_mode = 0;
+ case IDC_RTG_Z2Z3:
+ v = SendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR) {
+ if (v == 0) {
+ workprefs.rtgmem_type = 1;
+ workprefs.rtgmem_size = 0;
+ } else {
+ workprefs.rtgmem_type = v - 1;
+ if (workprefs.rtgmem_size == 0)
+ workprefs.rtgmem_size = 4096 * 1024;
}
- built_in_cpuboard_prefs(&workprefs);
- setcpuboardmemsize(hDlg);
- enable_for_memorydlg(hDlg);
+ enable_for_expansiondlg (hDlg);
}
break;
- }
- }
- workprefs.fastmem_autoconfig = ischecked (hDlg, IDC_FASTMEMAUTOCONFIG);
- for (int i = 0; cpuboard_settings_id[i] >= 0; i++) {
- workprefs.cpuboard_settings &= ~(1 << i);
- if (ischecked(hDlg, cpuboard_settings_id[i]))
- workprefs.cpuboard_settings |= 1 << i;
- }
- recursive--;
- }
- break;
-
- case WM_HSCROLL:
- workprefs.chipmem_size = memsizes[msi_chip[SendMessage (GetDlgItem (hDlg, IDC_CHIPMEM), TBM_GETPOS, 0, 0)]];
- workprefs.bogomem_size = memsizes[msi_bogo[SendMessage (GetDlgItem (hDlg, IDC_SLOWMEM), TBM_GETPOS, 0, 0)]];
- workprefs.fastmem_size = memsizes[msi_fast[SendMessage (GetDlgItem (hDlg, IDC_FASTMEM), TBM_GETPOS, 0, 0)]];
- workprefs.fastmem2_size = memsizes[msi_fast[SendMessage (GetDlgItem (hDlg, IDC_FASTMEM2), TBM_GETPOS, 0, 0)]];
- workprefs.z3fastmem_size = memsizes[msi_z3fast[SendMessage (GetDlgItem (hDlg, IDC_Z3FASTMEM), TBM_GETPOS, 0, 0)]];
- updatez3 (&workprefs.z3fastmem_size, &workprefs.z3fastmem2_size);
- workprefs.z3chipmem_size = memsizes[msi_z3chip[SendMessage (GetDlgItem (hDlg, IDC_Z3CHIPMEM), TBM_GETPOS, 0, 0)]];
- workprefs.mbresmem_low_size = memsizes[msi_gfx[SendMessage (GetDlgItem (hDlg, IDC_MBMEM1), TBM_GETPOS, 0, 0)]];
- workprefs.mbresmem_high_size = memsizes[msi_gfx[SendMessage (GetDlgItem (hDlg, IDC_MBMEM2), TBM_GETPOS, 0, 0)]];
- workprefs.cpuboardmem1_size = memsizes[msi_cpuboard[SendMessage (GetDlgItem (hDlg, IDC_CPUBOARDMEM), TBM_GETPOS, 0, 0)]];
- fix_values_memorydlg ();
- values_to_memorydlg (hDlg);
- enable_for_memorydlg (hDlg);
- break;
-
- }
- return FALSE;
-}
-
-static void addromfiles (UAEREG *fkey, HWND hDlg, DWORD d, const TCHAR *path, int type1, int type2)
-{
- int idx;
- TCHAR tmp[MAX_DPATH];
- TCHAR tmp2[MAX_DPATH];
- TCHAR seltmp[MAX_DPATH];
- struct romdata *rdx = NULL;
-
- SendDlgItemMessage(hDlg, d, CB_RESETCONTENT, 0, 0);
- SendDlgItemMessage(hDlg, d, CB_ADDSTRING, 0, (LPARAM)_T(""));
- if (path)
- rdx = scan_single_rom (path);
- idx = 0;
- seltmp[0] = 0;
- for (;fkey;) {
- int size = sizeof (tmp) / sizeof (TCHAR);
- int size2 = sizeof (tmp2) / sizeof (TCHAR);
- if (!regenumstr (fkey, idx, tmp, &size, tmp2, &size2))
- break;
- if (_tcslen (tmp) == 7 || _tcslen (tmp) == 13) {
- int group = 0;
- int subitem = 0;
- int idx2 = _tstol (tmp + 4);
- if (_tcslen (tmp) == 13) {
- group = _tstol (tmp + 8);
- subitem = _tstol (tmp + 11);
- }
- if (idx2 >= 0) {
- struct romdata *rd = getromdatabyidgroup (idx2, group, subitem);
- 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 || (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);
- if (rd == rdx)
- _tcscpy (seltmp, tmp);
- break;
- }
+ case IDC_RTG_8BIT:
+ v = SendDlgItemMessage (hDlg, IDC_RTG_8BIT, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR) {
+ mask &= ~RGBFF_CLUT;
+ if (v == 1)
+ mask |= RGBFF_CLUT;
+ }
+ break;
+ case IDC_RTG_16BIT:
+ v = SendDlgItemMessage (hDlg, IDC_RTG_16BIT, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR) {
+ mask &= ~(RGBFF_R5G6B5PC | RGBFF_R5G5B5PC | RGBFF_R5G6B5 | RGBFF_R5G5B5 | RGBFF_B5G6R5PC | RGBFF_B5G5R5PC);
+ if (v == 1)
+ mask |= RGBFF_R5G6B5PC | RGBFF_R5G6B5PC | RGBFF_R5G5B5PC | RGBFF_R5G6B5 | RGBFF_R5G5B5 | RGBFF_B5G6R5PC | RGBFF_B5G5R5PC;
+ if (v == 2)
+ mask |= RGBFF_R5G6B5PC;
+ if (v == 3)
+ mask |= RGBFF_R5G5B5PC;
+ if (v == 4)
+ mask |= RGBFF_R5G6B5;
+ if (v == 5)
+ mask |= RGBFF_R5G5B5;
+ if (v == 6)
+ mask |= RGBFF_B5G6R5PC;
+ if (v == 7)
+ mask |= RGBFF_B5G5R5PC;
+ }
+ break;
+ case IDC_RTG_24BIT:
+ v = SendDlgItemMessage (hDlg, IDC_RTG_24BIT, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR) {
+ mask &= ~(RGBFF_R8G8B8 | RGBFF_B8G8R8);
+ if (v == 1)
+ mask |= RGBFF_R8G8B8 | RGBFF_B8G8R8;
+ if (v == 2)
+ mask |= RGBFF_R8G8B8;
+ if (v == 3)
+ mask |= RGBFF_B8G8R8;
}
- }
- }
- }
- idx++;
- }
- if (seltmp[0])
- SendDlgItemMessage (hDlg, d, CB_SELECTSTRING, (WPARAM)-1, (LPARAM)seltmp);
- else
- SetDlgItemText(hDlg, d, path);
-}
-
-static void getromfile (HWND hDlg, DWORD d, TCHAR *path, int size)
-{
- LRESULT val = SendDlgItemMessage (hDlg, d, CB_GETCURSEL, 0, 0L);
- if (val == CB_ERR) {
- SendDlgItemMessage (hDlg, d, WM_GETTEXT, (WPARAM)size, (LPARAM)path);
- } else {
- TCHAR tmp1[MAX_DPATH];
- struct romdata *rd;
- SendDlgItemMessage (hDlg, d, CB_GETLBTEXT, (WPARAM)val, (LPARAM)tmp1);
- path[0] = 0;
- rd = getromdatabyname (tmp1);
- if (rd) {
- struct romlist *rl = getromlistbyromdata(rd);
- if (rd->configname)
- _stprintf (path, _T(":%s"), rd->configname);
- else if (rl)
- _tcsncpy (path, rl->path, size);
- }
- }
-}
-
-static const int expansion_settings_id[] = { IDC_EXPANSION_SETTING1, IDC_EXPANSION_SETTING2, -1 };
-
-static void values_to_kickstartdlg_sub(HWND hDlg)
-{
- SendDlgItemMessage(hDlg, IDC_CPUBOARDROMSUBSELECT, CB_RESETCONTENT, 0, 0);
- ew(hDlg, IDC_CPUBOARDROMSUBSELECT, false);
-
- SendDlgItemMessage(hDlg, IDC_SCSIROMSUBSELECT, CB_RESETCONTENT, 0, 0);
- const struct expansionromtype *er = &expansionroms[scsiromselected];
- const struct expansionsubromtype *srt = er->subtypes;
- ew(hDlg, IDC_SCSIROMSUBSELECT, srt != NULL);
- while (srt && srt->name) {
- SendDlgItemMessage(hDlg, IDC_SCSIROMSUBSELECT, CB_ADDSTRING, 0, (LPARAM)srt->name);
- srt++;
- }
- int index;
- struct boardromconfig *brc = get_device_rom(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum, &index);
- if (brc) {
- SendDlgItemMessage (hDlg, IDC_SCSIROMSUBSELECT, CB_SETCURSEL, brc->roms[index].subtype, 0);
- SendDlgItemMessage (hDlg, IDC_SCSIROMID, CB_SETCURSEL, brc->roms[index].device_id, 0);
- } else if (srt) {
- SendDlgItemMessage (hDlg, IDC_SCSIROMSUBSELECT, CB_SETCURSEL, 0, 0);
- SendDlgItemMessage (hDlg, IDC_SCSIROMID, CB_SETCURSEL, 0, 0);
- }
- if (er->zorro < 2 || er->singleonly) {
- scsiromselectednum = 0;
- SendDlgItemMessage (hDlg, IDC_SCSIROMSELECTNUM, CB_SETCURSEL, 0, 0);
- }
- ew(hDlg, IDC_SCSIROMSELECTNUM, er->zorro >= 2 && !er->singleonly);
-}
-
-static void values_from_kickstartdlg (HWND hDlg)
-{
- int index;
- struct boardromconfig *brc;
- TCHAR tmp[MAX_DPATH];
-
- getromfile(hDlg, IDC_ROMFILE, workprefs.romfile, sizeof (workprefs.romfile) / sizeof (TCHAR));
- getromfile(hDlg, IDC_ROMFILE2, workprefs.romextfile, sizeof (workprefs.romextfile) / sizeof (TCHAR));
- getromfile(hDlg, IDC_CARTFILE, workprefs.cartfile, sizeof (workprefs.cartfile) / sizeof (TCHAR));
-
- getromfile(hDlg, IDC_SCSIROMFILE, tmp, MAX_DPATH / sizeof (TCHAR));
- if (tmp[0]) {
- const struct expansionromtype *ert = &expansionroms[scsiromselected];
- brc = get_device_rom_new(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum, &index);
- bool changed = _tcscmp(tmp, brc->roms[index].romfile) != 0;
- getromfile(hDlg, IDC_SCSIROMFILE, brc->roms[index].romfile, MAX_DPATH / sizeof (TCHAR));
- brc->roms[index].autoboot_disabled = ischecked(hDlg, IDC_SCSIROMFILEAUTOBOOT);
-
- int v = SendDlgItemMessage (hDlg, IDC_SCSIROMID, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR)
- brc->roms[index].device_id = v;
-
- const struct expansionboardsettings *cbs = ert->settings;
- if (cbs) {
- for (int i = 0; cbs[i].name; i++) {
- int id = expansion_settings_id[i];
- if (id < 0)
break;
- brc->roms[index].device_settings &= ~(1 << i);
- if (ischecked(hDlg, id))
- brc->roms[index].device_settings |= 1 << i;
+ case IDC_RTG_32BIT:
+ v = SendDlgItemMessage (hDlg, IDC_RTG_32BIT, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR) {
+ mask &= ~(RGBFF_A8R8G8B8 | RGBFF_A8B8G8R8 | RGBFF_R8G8B8A8 | RGBFF_B8G8R8A8);
+ if (v == 1)
+ mask |= RGBFF_A8R8G8B8 | RGBFF_A8B8G8R8 | RGBFF_R8G8B8A8 | RGBFF_B8G8R8A8;
+ if (v == 2)
+ mask |= RGBFF_A8R8G8B8;
+ if (v == 3)
+ mask |= RGBFF_A8B8G8R8;
+ if (v == 4)
+ mask |= RGBFF_R8G8B8A8;
+ if (v == 5)
+ mask |= RGBFF_B8G8R8A8;
+ }
+ break;
+ case IDC_RTG_VBLANKRATE:
+ tmp[0] = 0;
+ v = SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR) {
+ if (v == 0) {
+ workprefs.win32_rtgvblankrate = 0;
+ } else if (v == 1) {
+ workprefs.win32_rtgvblankrate = -1;
+ } else {
+ v = SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, CB_GETLBTEXT, (WPARAM)v, (LPARAM)tmp);
+ }
+ } else {
+ v = SendDlgItemMessage (hDlg, IDC_RTG_VBLANKRATE, WM_GETTEXT, (WPARAM)sizeof tmp / sizeof (TCHAR), (LPARAM)tmp);
+ }
+ if (tmp[0])
+ workprefs.win32_rtgvblankrate = _tstol (tmp);
+ break;
+ }
+ workprefs.picasso96_modeflags = mask;
+ values_to_expansiondlg (hDlg);
}
+ recursive--;
}
-
- v = SendDlgItemMessage (hDlg, IDC_SCSIROMSUBSELECT, CB_GETCURSEL, 0, 0L);
- if (v != CB_ERR)
- brc->roms[index].subtype = v;
-
- if (changed)
- values_to_kickstartdlg_sub(hDlg);
- } else {
- brc = get_device_rom(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum, &index);
- clear_device_rom(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum);
- if (brc && brc->roms[index].romfile[0])
- values_to_kickstartdlg_sub(hDlg);
- }
- getromfile(hDlg, IDC_CPUBOARDROMFILE, tmp, sizeof(brc->roms[index].romfile) / sizeof(TCHAR));
- if (tmp[0]) {
- brc = get_device_rom_new(&workprefs, ROMTYPE_CPUBOARD, 0, &index);
- getromfile(hDlg, IDC_CPUBOARDROMFILE, brc->roms[index].romfile, sizeof(brc->roms[index].romfile) / sizeof(TCHAR));
- } else {
- clear_device_rom(&workprefs, ROMTYPE_CPUBOARD, 0);
+ break;
}
+ return FALSE;
}
-static void values_to_kickstartdlg_expansion_roms(HWND hDlg, UAEREG *fkey)
+static INT_PTR CALLBACK MemoryDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
- int index;
- bool keyallocated = false;
- struct boardromconfig *brc;
+ static int recursive = 0;
+ int v;
- if (!fkey) {
- fkey = regcreatetree(NULL, _T("DetectedROMs"));
- keyallocated = true;
- }
- if (scsiromselected) {
- const struct expansionromtype *ert = &expansionroms[scsiromselected];
- int romtype = ert->romtype;
- int romtype_extra = ert->romtype_extra;
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ recursive++;
+ pages[MEMORY_ID] = hDlg;
+ currentpage = MEMORY_ID;
+ SendDlgItemMessage (hDlg, IDC_CHIPMEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_CHIP_MEM, MAX_CHIP_MEM));
+ SendDlgItemMessage (hDlg, IDC_FASTMEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_FAST_MEM, MAX_FAST_MEM));
+ SendDlgItemMessage (hDlg, IDC_FASTMEM2, TBM_SETRANGE, TRUE, MAKELONG (MIN_FAST_MEM, MAX_FAST_MEM));
+ SendDlgItemMessage (hDlg, IDC_SLOWMEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_SLOW_MEM, MAX_SLOW_MEM));
+ SendDlgItemMessage (hDlg, IDC_Z3FASTMEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_Z3_MEM, MAX_Z3_MEM));
+ SendDlgItemMessage (hDlg, IDC_Z3CHIPMEM, TBM_SETRANGE, TRUE, MAKELONG (MIN_Z3_MEM, MAX_Z3_CHIPMEM));
+ SendDlgItemMessage (hDlg, IDC_MBMEM1, TBM_SETRANGE, TRUE, MAKELONG (MIN_MB_MEM, MAX_MBL_MEM));
+ SendDlgItemMessage (hDlg, IDC_MBMEM2, TBM_SETRANGE, TRUE, MAKELONG (MIN_MB_MEM, MAX_MBH_MEM));
+ CheckDlgButton(hDlg, IDC_FASTMEMAUTOCONFIG, workprefs.fastmem_autoconfig);
+ SendDlgItemMessage (hDlg, IDC_Z3MAPPING, CB_RESETCONTENT, 0, 0);
+ SendDlgItemMessage (hDlg, IDC_Z3MAPPING, CB_ADDSTRING, 0, (LPARAM)_T("Automatic (*)"));
+ SendDlgItemMessage(hDlg, IDC_Z3MAPPING, CB_ADDSTRING, 0, (LPARAM)_T("UAE"));
+ SendDlgItemMessage(hDlg, IDC_Z3MAPPING, CB_ADDSTRING, 0, (LPARAM)_T("Real"));
+ SendDlgItemMessage (hDlg, IDC_Z3MAPPING, CB_SETCURSEL, workprefs.z3_mapping_mode, 0);
+ recursive--;
- 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;
+ case WM_USER:
+ recursive++;
+ fix_values_memorydlg ();
+ values_to_memorydlg (hDlg);
+ enable_for_memorydlg (hDlg);
+ recursive--;
+ break;
+
+ case WM_COMMAND:
+ if (!recursive) {
+ recursive++;
+ if (HIWORD (wParam) == CBN_SELCHANGE || HIWORD (wParam) == CBN_KILLFOCUS) {
+ switch (LOWORD (wParam))
+ {
+ case IDC_Z3MAPPING:
+ v = SendDlgItemMessage (hDlg, IDC_Z3MAPPING, CB_GETCURSEL, 0, 0L);
+ if (v != CB_ERR) {
+ workprefs.z3_mapping_mode = v;
+ }
+ break;
+ }
}
+ workprefs.fastmem_autoconfig = ischecked (hDlg, IDC_FASTMEMAUTOCONFIG);
+ recursive--;
}
- 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);
-}
+ break;
-static void values_to_kickstartdlg_expansion_settings(HWND hDlg)
-{
- int index;
- struct boardromconfig *brc;
- const struct expansionromtype *ert = &expansionroms[scsiromselected];
- brc = get_device_rom(&workprefs, expansionroms[scsiromselected].romtype, scsiromselectednum, &index);
- if (brc) {
- if (brc->roms[index].romfile[0])
- ew(hDlg, IDC_SCSIROMFILEAUTOBOOT, ert->autoboot_jumper);
- } else {
- if (brc)
- brc->roms[index].autoboot_disabled = false;
- ew(hDlg, IDC_SCSIROMFILEAUTOBOOT, FALSE);
- setchecked(hDlg, IDC_SCSIROMFILEAUTOBOOT, false);
- }
- ew(hDlg, IDC_SCSIROMID, ert->id_jumper);
+ case WM_HSCROLL:
+ workprefs.chipmem_size = memsizes[msi_chip[SendMessage (GetDlgItem (hDlg, IDC_CHIPMEM), TBM_GETPOS, 0, 0)]];
+ workprefs.bogomem_size = memsizes[msi_bogo[SendMessage (GetDlgItem (hDlg, IDC_SLOWMEM), TBM_GETPOS, 0, 0)]];
+ workprefs.fastmem_size = memsizes[msi_fast[SendMessage (GetDlgItem (hDlg, IDC_FASTMEM), TBM_GETPOS, 0, 0)]];
+ workprefs.fastmem2_size = memsizes[msi_fast[SendMessage (GetDlgItem (hDlg, IDC_FASTMEM2), TBM_GETPOS, 0, 0)]];
+ workprefs.z3fastmem_size = memsizes[msi_z3fast[SendMessage (GetDlgItem (hDlg, IDC_Z3FASTMEM), TBM_GETPOS, 0, 0)]];
+ updatez3 (&workprefs.z3fastmem_size, &workprefs.z3fastmem2_size);
+ workprefs.z3chipmem_size = memsizes[msi_z3chip[SendMessage (GetDlgItem (hDlg, IDC_Z3CHIPMEM), TBM_GETPOS, 0, 0)]];
+ workprefs.mbresmem_low_size = memsizes[msi_gfx[SendMessage (GetDlgItem (hDlg, IDC_MBMEM1), TBM_GETPOS, 0, 0)]];
+ workprefs.mbresmem_high_size = memsizes[msi_gfx[SendMessage (GetDlgItem (hDlg, IDC_MBMEM2), TBM_GETPOS, 0, 0)]];
+ workprefs.cpuboardmem1_size = memsizes[msi_cpuboard[SendMessage (GetDlgItem (hDlg, IDC_CPUBOARDMEM), TBM_GETPOS, 0, 0)]];
+ fix_values_memorydlg ();
+ values_to_memorydlg (hDlg);
+ enable_for_memorydlg (hDlg);
+ break;
- const struct expansionboardsettings *cbs = ert->settings;
- for (int i = 0; expansion_settings_id[i] >= 0; i++) {
- hide(hDlg, expansion_settings_id[i], !(cbs && cbs[i].name));
- }
- int i = 0;
- if (cbs) {
- for (i = 0; cbs[i].name; i++) {
- int id = expansion_settings_id[i];
- if (id < 0)
- break;
- SetWindowText (GetDlgItem(hDlg, id), cbs[i].name);
- setchecked(hDlg, id, (brc && (brc->roms[index].device_settings & (1 << i))));
- }
- }
- while (expansion_settings_id[i] >= 0) {
- int id = expansion_settings_id[i];
- SetWindowText (GetDlgItem(hDlg, id), _T("-"));
- i++;
}
+ return FALSE;
}
static void values_to_kickstartdlg (HWND hDlg)
{
UAEREG *fkey;
- int index;
- struct boardromconfig *brc;
fkey = regcreatetree (NULL, _T("DetectedROMs"));
addromfiles (fkey, hDlg, IDC_CARTFILE, workprefs.cartfile,
ROMTYPE_FREEZER | ROMTYPE_ARCADIAGAME | ROMTYPE_CD32CART, 0);
- values_to_kickstartdlg_expansion_roms(hDlg, fkey);
- values_to_kickstartdlg_expansion_settings(hDlg);
-
- if (workprefs.cpuboard_type) {
- const struct cpuboardsubtype *cst = &cpuboards[workprefs.cpuboard_type].subtypes[workprefs.cpuboard_subtype];
- brc = get_device_rom(&workprefs, ROMTYPE_CPUBOARD, 0, &index);
- addromfiles(fkey, hDlg, IDC_CPUBOARDROMFILE, brc ? brc->roms[index].romfile : NULL,
- cst->romtype, cst->romtype_extra);
- } else {
- SendDlgItemMessage(hDlg, IDC_CPUBOARDROMFILE, CB_RESETCONTENT, 0, 0);
- }
-
regclosetree(fkey);
SetDlgItemText(hDlg, IDC_FLASHFILE, workprefs.flashfile);
SetDlgItemText(hDlg, IDC_RTCFILE, workprefs.rtcfile);
CheckDlgButton(hDlg, IDC_KICKSHIFTER, workprefs.kickshifter);
CheckDlgButton(hDlg, IDC_MAPROM, workprefs.maprom);
- gui_set_string_cursor(scsiromselect_table, hDlg, IDC_SCSIROMSELECT, scsiromselected);
- values_to_kickstartdlg_sub(hDlg);
+}
+
+static void values_from_kickstartdlg(HWND hDlg)
+{
+ getromfile(hDlg, IDC_ROMFILE, workprefs.romfile, sizeof(workprefs.romfile) / sizeof(TCHAR));
+ getromfile(hDlg, IDC_ROMFILE2, workprefs.romextfile, sizeof(workprefs.romextfile) / sizeof(TCHAR));
+ getromfile(hDlg, IDC_CARTFILE, workprefs.cartfile, sizeof(workprefs.cartfile) / sizeof(TCHAR));
}
static void init_kickstart (HWND hDlg)
{
- static int first = -1;
#if !defined(AUTOCONFIG)
ew (hDlg, IDC_MAPROM), FALSE);
#endif
ew (hDlg, IDC_CARTCHOOSER), FALSE);
ew (hDlg, IDC_FLASHCHOOSER), FALSE);
#endif
- ew(hDlg, IDC_CPUBOARDROMFILE, workprefs.cpuboard_type != 0);
-
- SendDlgItemMessage(hDlg, IDC_SCSIROMSELECT, CB_RESETCONTENT, 0, 0);
- scsiromselect_table[0] = -1;
- for (int i = 0; expansionroms[i].name; i++) {
- TCHAR name[256];
- if (expansionroms[i].romtype & ROMTYPE_CPUBOARD)
- continue;
- name[0] = 0;
- int cnt = 0;
- for (int j = 0; j < MAX_DUPLICATE_EXPANSION_BOARDS; j++) {
- if (cfgfile_board_enabled(&workprefs, expansionroms[i].romtype, j)) {
- cnt++;
- }
- }
- if (cnt > 0) {
- if (first < 0)
- first = i;
- }
- if (cnt == 1)
- _tcscat(name, _T("* "));
- else if (cnt > 1)
- _stprintf(name + _tcslen(name), _T("[%d] "), cnt);
- if (expansionroms[i].friendlymanufacturer) {
- _tcscat(name, expansionroms[i].friendlymanufacturer);
- _tcscat(name, _T(" "));
- }
- _tcscat(name, expansionroms[i].friendlyname);
- gui_add_string(scsiromselect_table, hDlg, IDC_SCSIROMSELECT, i, name);
- }
- SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTNUM, CB_RESETCONTENT, 0, 0);
- for (int i = 0; i < MAX_DUPLICATE_EXPANSION_BOARDS; i++) {
- TCHAR tmp[10];
- _stprintf(tmp, _T("%d"), i + 1);
- SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTNUM, CB_ADDSTRING, 0, (LPARAM)tmp);
- }
-
- int found = -1;
- for (int i = 0; expansionroms[i].name; i++) {
- int romtype = expansionroms[i].romtype;
- if (romtype & ROMTYPE_CPUBOARD)
- continue;
- if (cfgfile_board_enabled(&workprefs, romtype, 0)) {
- if (found == -1)
- found = i;
- else
- found = -2;
- }
- }
- if (scsiromselected < 0 && found < 0)
- found = first;
- if (found >= 0) {
- scsiromselected = found;
- gui_set_string_cursor(scsiromselect_table, hDlg, IDC_SCSIROMSELECT, scsiromselected);
- }
- SendDlgItemMessage(hDlg, IDC_SCSIROMSELECTNUM, CB_SETCURSEL, scsiromselectednum, 0);
-
- SendDlgItemMessage(hDlg, IDC_SCSIROMID, CB_RESETCONTENT, 0, 0);
- for (int i = 0; i < 8; i++) {
- TCHAR tmp[10];
- _stprintf(tmp, _T("%d"), i);
- SendDlgItemMessage(hDlg, IDC_SCSIROMID, CB_ADDSTRING, 0, (LPARAM)tmp);
- }
if (!regexiststree(NULL, _T("DetectedROMs")))
scan_roms (NULL, rp_isactive () ? 0 : 1);
DiskSelection(hDlg, IDC_CARTFILE, 6, &workprefs, path);
values_to_kickstartdlg (hDlg);
break;
- case IDC_SCSIROMCHOOSER:
- DiskSelection(hDlg, IDC_SCSIROMFILE, 6, &workprefs, path);
- values_to_kickstartdlg (hDlg);
- break;
- case IDC_CPUBOARDROMCHOOSER:
- DiskSelection(hDlg, IDC_CPUBOARDROMFILE, 6, &workprefs, path);
- values_to_kickstartdlg(hDlg);
- break;
}
}
{
case WM_INITDIALOG:
{
- int ids[] = { IDC_ROMFILE, IDC_ROMFILE2, IDC_CARTFILE, IDC_SCSIROMFILE, IDC_CPUBOARDROMFILE, -1 };
+ int ids[] = { IDC_ROMFILE, IDC_ROMFILE2, IDC_CARTFILE, -1 };
pages[KICKSTART_ID] = hDlg;
currentpage = KICKSTART_ID;
init_kickstart (hDlg);
case IDC_ROMFILE:
case IDC_ROMFILE2:
case IDC_CARTFILE:
- case IDC_SCSIROMFILE:
- case IDC_SCSIROMID:
- 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);
- if (val != CB_ERR)
- scsiromselectednum = val;
- val = gui_get_string_cursor(scsiromselect_table, hDlg, IDC_SCSIROMSELECT);
- if (val != CB_ERR) {
- scsiromselected = val;
- values_to_kickstartdlg_expansion_roms(hDlg, NULL);
- values_to_kickstartdlg_expansion_settings(hDlg);
- values_to_kickstartdlg_sub(hDlg);
- }
break;
}
}
kickstartfilebuttons (hDlg, wParam, NULL);
switch (LOWORD (wParam))
{
- case IDC_EXPANSION_SETTING1:
- case IDC_EXPANSION_SETTING2:
- values_from_kickstartdlg (hDlg);
- break;
-
- case IDC_SCSIROMFILEAUTOBOOT:
- values_from_kickstartdlg (hDlg);
- break;
-
case IDC_FLASHFILE:
GetWindowText (GetDlgItem (hDlg, IDC_FLASHFILE), tmp, sizeof (tmp) / sizeof (TCHAR));
_tcscpy (workprefs.flashfile, tmp);
}
ew(hDlg, IDC_HDF_CONTROLLER_UNIT, TRUE);
} else if (ctype >= HD_CONTROLLER_TYPE_SCSI_FIRST && ctype <= HD_CONTROLLER_TYPE_SCSI_LAST) {
+ const struct expansionromtype *ert = get_unit_expansion_rom(ctype);
SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("0"));
SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("1"));
- SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("2"));
- SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("3"));
- SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("4"));
- SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("5"));
- SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("6"));
- const struct expansionromtype *ert = get_unit_expansion_rom(ctype);
- if (devtype == UAEDEV_HDF && ert && !_tcscmp(ert->name, _T("a2091")))
- SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("XT"));
+ if (!ert || !(ert->deviceflags & EXPANSIONTYPE_SASI)) {
+ SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("2"));
+ SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("3"));
+ SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("4"));
+ SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("5"));
+ SendDlgItemMessage (hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("6"));
+ if (devtype == UAEDEV_HDF && ert && !_tcscmp(ert->name, _T("a2091")))
+ SendDlgItemMessage(hDlg, IDC_HDF_CONTROLLER_UNIT, CB_ADDSTRING, 0, (LPARAM)_T("XT"));
+ }
ew(hDlg, IDC_HDF_CONTROLLER_UNIT, TRUE);
} else {
ew(hDlg, IDC_HDF_CONTROLLER_UNIT, FALSE);
SendDlgItemMessage (hDlg, IDC_HDF_FEATURE_LEVEL, CB_ADDSTRING, 0, (LPARAM)_T("ATA-2+ Strict"));
} else if (ctype >= HD_CONTROLLER_TYPE_SCSI_FIRST && ctype <= HD_CONTROLLER_TYPE_SCSI_LAST) {
SendDlgItemMessage (hDlg, IDC_HDF_FEATURE_LEVEL, CB_ADDSTRING, 0, (LPARAM)_T("SCSI-1"));
- SendDlgItemMessage (hDlg, IDC_HDF_FEATURE_LEVEL, CB_ADDSTRING, 0, (LPARAM)_T("SCSI-2"));
+ SendDlgItemMessage(hDlg, IDC_HDF_FEATURE_LEVEL, CB_ADDSTRING, 0, (LPARAM) _T("SCSI-2"));
+ SendDlgItemMessage(hDlg, IDC_HDF_FEATURE_LEVEL, CB_ADDSTRING, 0, (LPARAM) _T("SASI"));
}
}
}
if (current_hfdlg.ci.controller_type >= HD_CONTROLLER_TYPE_IDE_FIRST && current_hfdlg.ci.controller_type <= HD_CONTROLLER_TYPE_IDE_LAST) {
- if (!current_hfdlg.ci.unit_feature_level && bsize >= 4 * (uae_u64)0x40000000)
- current_hfdlg.ci.unit_feature_level = 1;
+ if (current_hfdlg.ci.unit_feature_level == HD_LEVEL_ATA_1 && bsize >= 4 * (uae_u64)0x40000000)
+ current_hfdlg.ci.unit_feature_level = HD_LEVEL_ATA_2;
}
cyls = phys ? current_hfdlg.ci.pcyls : current_hfdlg.forcedcylinders;
CN (MEMORY_ID, _T("ram"));
CN (FLOPPY_ID, _T("floppy"));
CN (HARDDISK_ID, _T("harddisk"));
- CN (EXPANSION_ID, _T("expansion"));
+ CN(EXPANSION2_ID, _T("expansion2"));
+ CN(EXPANSION_ID, _T("expansion"));
p2 = p = CreateFolderNode (TVhDlg, IDS_TREEVIEW_HOST, root, LOADSAVE_ID, CONFIG_TYPE_HOST, _T("configuration_host"));
CN (DISPLAY_ID, _T("display"));
panelresource = getresource (IDD_PANEL);
LOADSAVE_ID = init_page (IDD_LOADSAVE, IDI_FILE, IDS_LOADSAVE, LoadSaveDlgProc, NULL, _T("gui/configurations.htm"), IDC_CONFIGTREE);
MEMORY_ID = init_page (IDD_MEMORY, IDI_MEMORY, IDS_MEMORY, MemoryDlgProc, NULL, _T("gui/ram.htm"), 0);
- EXPANSION_ID = init_page (IDD_EXPANSION, IDI_EXPANSION, IDS_EXPANSION, ExpansionDlgProc, NULL, _T("gui/expansion.htm"), 0);
+ EXPANSION_ID = init_page(IDD_EXPANSION, IDI_EXPANSION, IDS_EXPANSION, ExpansionDlgProc, NULL, _T("gui/expansion.htm"), 0);
+ EXPANSION2_ID = init_page(IDD_EXPANSION2, IDI_EXPANSION, IDS_EXPANSION2, Expansion2DlgProc, NULL, _T("gui/expansion2.htm"), 0);
KICKSTART_ID = init_page (IDD_KICKSTART, IDI_MEMORY, IDS_KICKSTART, KickstartDlgProc, NULL, _T("gui/rom.htm"), 0);
CPU_ID = init_page (IDD_CPU, IDI_CPU, IDS_CPU, CPUDlgProc, NULL, _T("gui/cpu.htm"), 0);
DISPLAY_ID = init_page (IDD_DISPLAY, IDI_DISPLAY, IDS_DISPLAY, DisplayDlgProc, NULL, _T("gui/display.htm"), 0);