From: Toni Wilen Date: Sun, 28 Sep 2025 16:26:01 +0000 (+0300) Subject: 6020b1 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=a2e530a898ee1e90b2f8e3167727cfd379ab2807;p=francis%2Fwinuae.git 6020b1 --- diff --git a/gfxboard.cpp b/gfxboard.cpp index 677ce2e2..59510f38 100644 --- a/gfxboard.cpp +++ b/gfxboard.cpp @@ -1408,6 +1408,19 @@ bool gfxboard_set(int monid, bool rtg) return r; } +int gfxboard_monitor_visible(int monid) +{ + if (gfxboard_isgfxboardscreen(monid)) { + return 1; + } + if (currprefs.monitoremu && currprefs.monitoremu_mon == monid) { + if (rtg_visible[monid] > 0) { + return -1; + } + } + return 0; +} + void gfxboard_rtg_disable(int monid, int index) { if (monid > 0) diff --git a/include/gfxboard.h b/include/gfxboard.h index 896ed4ba..36e9e575 100644 --- a/include/gfxboard.h +++ b/include/gfxboard.h @@ -30,6 +30,7 @@ extern struct gfxboard_func *gfxboard_get_func(struct rtgboardconfig *rbc); extern int gfxboard_get_index_from_id(int); extern int gfxboard_get_id_from_index(int); extern bool gfxboard_switch_away(int monid); +extern int gfxboard_monitor_visible(int monid); extern bool gfxboard_allocate_slot(int, int); extern void gfxboard_free_slot(int); diff --git a/od-win32/dinput.cpp b/od-win32/dinput.cpp index f75cea5e..62629d1b 100644 --- a/od-win32/dinput.cpp +++ b/od-win32/dinput.cpp @@ -2121,12 +2121,15 @@ static void sendscancode(int num, int scancode, int pressed) #if DEBUG_SCANCODE write_log(_T("%02X %d %d\n"), scancode, pressed, isfocus()); #endif - if (scancode < 0) + if (scancode < 0) { return; - if (!isfocus()) + } + if (!isfocus()) { return; - if (isfocus() < 2 && currprefs.input_tablet >= TABLET_MOUSEHACK && (currprefs.input_mouse_untrap & MOUSEUNTRAP_MAGIC)) + } + if (isfocus() < 2 && currprefs.input_tablet >= TABLET_MOUSEHACK && (currprefs.input_mouse_untrap & MOUSEUNTRAP_MAGIC)) { return; + } if (!mouseactive && !(currprefs.win32_active_input & 1)) { if ((currprefs.win32_guikey <= 0 && scancode == DIK_F12) || (scancode == currprefs.win32_guikey)) { inputdevice_add_inputcode(AKS_ENTERGUI, 1, NULL); @@ -2135,8 +2138,7 @@ static void sendscancode(int num, int scancode, int pressed) } if (pressed) { di_keycodes[num][scancode] = 1; - } - else { + } else { if ((di_keycodes[num][scancode] & 1) && pause_emulation) { di_keycodes[num][scancode] = 2; } diff --git a/od-win32/resources/resource.h b/od-win32/resources/resource.h index 6b3489f2..3adbc1fb 100644 --- a/od-win32/resources/resource.h +++ b/od-win32/resources/resource.h @@ -1133,6 +1133,7 @@ #define IDC_MONITOREMU_MON 1716 #define IDC_CS_CD32CD 1717 #define IDC_KEYBOARDMODE 1717 +#define IDC_MONITOREMU_ACTIVEMON 1717 #define IDC_CS_CD32C2P 1718 #define IDC_SOUND_PORTAUDIO 1718 #define IDC_DISPLAY_OPTIMIZATION 1718 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index 0255348d..d0d93b88 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -1288,6 +1288,8 @@ BEGIN CTEXT "Aspect ratio:",IDC_STATIC,282,212,83,10,SS_CENTERIMAGE COMBOBOX IDC_RTG_SCALE_ASPECTRATIO,282,227,84,150,CBS_DROPDOWNLIST | CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP CONTROL "Native/RTG autoswitch",IDC_RTG_SWITCHER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,195,130,95,10 + COMBOBOX IDC_MONITOREMU_ACTIVEMON,312,62,65,65,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_TABSTOP + LTEXT "Active output:",IDC_STATIC,245,62,62,10,NOT WS_VISIBLE,WS_EX_RIGHT END IDD_INPUTMAP DIALOGEX 0, 0, 421, 293 diff --git a/od-win32/rp.cpp b/od-win32/rp.cpp index 129e0bf8..c9dcf240 100644 --- a/od-win32/rp.cpp +++ b/od-win32/rp.cpp @@ -1194,9 +1194,9 @@ static void set_screenmode (struct RPScreenMode *sm, struct uae_prefs *p) } if (keepaspect) { - bool type = p->gf[0].gfx_filter_autoscale == AUTOSCALE_MANUAL && !ntsc_extended; - p->gf[0].gfx_filter_aspect = type ? -1 : 0; - p->gf[0].gfx_filter_keep_autoscale_aspect = ntsc_extended ? 0 : 1; + //bool type = p->gf[0].gfx_filter_autoscale == AUTOSCALE_MANUAL && ntsc_extended; + p->gf[0].gfx_filter_aspect = -1; + p->gf[0].gfx_filter_keep_autoscale_aspect = ntsc_extended || fs ? 0 : 1; p->gf[0].gfx_filter_keep_aspect = 1; } else { p->gf[0].gfx_filter_aspect = 0; diff --git a/od-win32/win32.h b/od-win32/win32.h index 4a602308..4fcaa2b4 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -20,12 +20,12 @@ #define LANG_DLL_FULL_VERSION_MATCH 1 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("0") +#define WINUAEBETA _T("1") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2025, 8, 17) +#define WINUAEDATE MAKEBD(2025, 9, 28) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index 8229cba7..0396217b 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -11579,6 +11579,7 @@ static void enable_for_expansiondlg(HWND hDlg) struct rtgboardconfig *rbc = &workprefs.rtgboards[gui_rtg_index]; int z3 = true; int en; + bool monitors = false; en = !!full_property_sheet; @@ -11587,6 +11588,11 @@ static void enable_for_expansiondlg(HWND hDlg) int rtg3 = workprefs.rtgboards[gui_rtg_index].rtgmem_size && workprefs.rtgboards[gui_rtg_index].rtgmem_type < GFXBOARD_HARDWARE; int rtg4 = workprefs.rtgboards[gui_rtg_index].rtgmem_type < GFXBOARD_HARDWARE; int rtg5 = workprefs.rtgboards[gui_rtg_index].rtgmem_size && full_property_sheet; + for (int i = 0; i < MAX_RTG_BOARDS; i++) { + if (workprefs.rtgboards[i].rtgmem_size && workprefs.rtgboards[i].monitor_id > 0) { + monitors = true; + } + } int rtg0 = rtg2; if (gui_rtg_index > 0) { @@ -11599,6 +11605,7 @@ static void enable_for_expansiondlg(HWND hDlg) ew(hDlg, IDC_P96MEM, rtg0); ew(hDlg, IDC_RTG_Z2Z3, z3); ew(hDlg, IDC_MONITOREMU_MON, rtg5); + //ew(hDlg, IDC_MONITOREMU_ACTIVEMON, TRUE); ew(hDlg, IDC_RTG_8BIT, rtg); ew(hDlg, IDC_RTG_16BIT, rtg); ew(hDlg, IDC_RTG_24BIT, rtg); @@ -11682,6 +11689,7 @@ static void values_to_expansiondlg(HWND hDlg) xSendDlgItemMessage(hDlg, IDC_RTG_Z2Z3, CB_SETCURSEL, rbc->rtgmem_size == 0 ? 0 : gfxboard_get_index_from_id(rbc->rtgmem_type) + 1, 0); xSendDlgItemMessage(hDlg, IDC_MONITOREMU_MON, CB_SETCURSEL, rbc->monitor_id, 0); + //xSendDlgItemMessage(hDlg, IDC_MONITOREMU_ACTIVEMON, CB_SETCURSEL, 0, 0); xSendDlgItemMessage(hDlg, IDC_RTG_NUM, CB_SETCURSEL, gui_rtg_index, 0); xSendDlgItemMessage(hDlg, IDC_RTG_8BIT, CB_SETCURSEL, (workprefs.picasso96_modeflags & RGBFF_CLUT) ? 1 : 0, 0); xSendDlgItemMessage(hDlg, IDC_RTG_16BIT, CB_SETCURSEL, @@ -11764,10 +11772,17 @@ static INT_PTR CALLBACK ExpansionDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP } xSendDlgItemMessage(hDlg, IDC_MONITOREMU_MON, CB_RESETCONTENT, 0, 0); +#if 0 + xSendDlgItemMessage(hDlg, IDC_MONITOREMU_ACTIVEMON, CB_RESETCONTENT, 0, 0); for (int i = 0; i < MAX_AMIGAMONITORS; i++) { _stprintf(tmp, _T("%d"), i + 1); xSendDlgItemMessage(hDlg, IDC_MONITOREMU_MON, CB_ADDSTRING, 0, (LPARAM)tmp); } + xSendDlgItemMessage(hDlg, IDC_MONITOREMU_ACTIVEMON, CB_ADDSTRING, 0, _T("Chipset")); + xSendDlgItemMessage(hDlg, IDC_MONITOREMU_ACTIVEMON, CB_ADDSTRING, 0, _T("RTG #1")); + xSendDlgItemMessage(hDlg, IDC_MONITOREMU_ACTIVEMON, CB_ADDSTRING, 0, _T("RTG #2")); + xSendDlgItemMessage(hDlg, IDC_MONITOREMU_ACTIVEMON, CB_ADDSTRING, 0, _T("RTG #3")); +#endif xSendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_RESETCONTENT, 0, 0); xSendDlgItemMessage (hDlg, IDC_RTG_Z2Z3, CB_ADDSTRING, 0, (LPARAM)_T("-")); @@ -11927,6 +11942,7 @@ static INT_PTR CALLBACK ExpansionDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LP if (v != CB_ERR) { workprefs.rtgboards[gui_rtg_index].monitor_id = v; values_to_expansiondlg(hDlg); + enable_for_expansiondlg(hDlg); } break; case IDC_RTG_Z2Z3: diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 01116edb..98f37989 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,43 @@ + +6.x bugs fixed: + +- Another blitter statesave restore when active fix. If blitter was active when restoring and state was saved with 6.0+, restore might have resumed the blit incorrectly. +- Status bar Power and DFx: had offset when clicking with mouse since capslock/line count was added. +- Add harddrive still didn't work correctly in all situations. (Partition was selected correctly but when emulation started, it didn't find the selected partition anymore). Added some more log messages. +- Configurations that need internal RAM graphics buffer (lightpen cursor, video port adapters including genlock, debugging overlays etc that need to modify output graphics) didn't work correctly in automatic scaling modes (right half of display blanked and possible other side-effects) +- Configurations that need internal RAM graphics buffer (see above) and switching PAL/NTSC (or some other reason for screen height change) didn't update line mapping table, leaving "new" part of display at the bottom blank. +- Autoresolution + NTSC (possibly also in some other display modes) switched between lores and hires continuously. +- Fast line drawing in some situations drew only part of scan line (Pinball Illusions table selection screen or Brilliance II first line of bottom screen) +- Fast line drawing in DPF mode with both planes having different scroll value: visible garbage was possible in right border (Pinball Illusions table selection screen) +- Horizontal centering change sometimes left garbage in edges of screen. +- A2024 and possibly some other display port adapters got broken in 6.0.1. +- On the fly switching to 68000/010 cycle-exact from any non-cycle-exact left internal cycle counter unaligned, causing CE 68000/010 to lose DMA slots "randomly". + +Other fixes and new features: + +- Added "Always stretch NTSC mode" checkbox to Filter panel (name needs to be better?). If selected (default), NTSC mode is stretched to match PAL mode height. Most filter modes had this active by default. It is now optional. Does not affect Integer scale, most automatic scale and TV modes. +- Paula pot counter increment is clocked by first strobe slot, was still using start of scanline. (As usual, no one cares) +- If GUI has text/numeric edit control active, return only unfocuses the control instead of exiting GUI. Return without focused edit control still exists GUI like previously. +- GUI filter horizontal/vertical number boxes are now directly editable. +- Manual filter mode positioning range increased, previously negative values were not accepted. +- Direct3D 11 mode ignored on the fly fullscreen refresh rate changes. +- External HRTMon ROM images were not accepted. (Maybe some really old ones did work?) +- Gameports remap window didn't always list all mapped input events. Non-listed events still worked correctly. +- Gameports remap and manually adding events with "Add event" button and input source was analog stick movement: remapping "randomly" chose between analog and digital input variant. Now digital variant ([-]/[+] at the end of name) has priority. +- Added 3.2.3 KS ROM checksums (Amiberry) +- If 680x0 CPU is stopped with IPL mask = 7 (CPU can only wake up with NMI or reset), CPU OSD shows CPU as stopped. +- Debugger MMU U command now also outputs MMU table descriptor pointers used for table search. Any debugger MMU command now always first flushes descriptor cache. Previously debugger MMU table searches coud modify MMU tables (for example modified bit would get set if not already set). 68030 MMU mmud full table dump command supported. +- RDB/OFS/FFS hardfile creation option is now separated to RDB and OFS/FFS. RDB adds RDSK identifier to new hardfile and enables Full drive/RDB mode automatically. +- If A2090 or Mast FireBall hardfile is added, RDB mode was not fully activated automatically. +- GUI hardfile "New hard disk image file" section does not anymore reset to defaults after HDF has been created and GUI panel is fully updated after new HDF has been created. +- Added GVP QuikPak (non-XP) 68060 accelerator board. Only has $F00000 ROM that does usual 68060 FPU disable and also adds 9999/22 fake autoconfig device and resident "J Boyer Copyright 1996", no SCSI etc. ROM added to ROM scanner. +- Added Archos Overdrive HD 3.0 ROM ("amiquest.device (IDE 3.0 05/05/93)") ("IDE 5.0 10/02/94" was added long time ago) +- Renamed "SCSI Kit III" and "SCSI Kit IV" -> "Blizzard SCSI Kit III" and "Blizzard SCSI Kit IV" (Rename does not affect existing configurations) + + +6.0.1 + Beta 2: - ROM scanner detected ROMs dialog didn't list CD32 if only detected CD32 ROM was single 1M ROM.