]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
6020b1
authorToni Wilen <twilen@winuae.net>
Sun, 28 Sep 2025 16:26:01 +0000 (19:26 +0300)
committerToni Wilen <twilen@winuae.net>
Sun, 28 Sep 2025 16:26:01 +0000 (19:26 +0300)
gfxboard.cpp
include/gfxboard.h
od-win32/dinput.cpp
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/rp.cpp
od-win32/win32.h
od-win32/win32gui.cpp
od-win32/winuaechangelog.txt

index 677ce2e2e33b4abf7e71ec5e6e975bb5b1282aae..59510f3894be9faf292adb9931f92748fdd3f90c 100644 (file)
@@ -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)
index 896ed4ba88d844b9d4dc7480d0433a6930a7ad18..36e9e57543ae473afd200e1e29589998cee10ac6 100644 (file)
@@ -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);
index f75cea5ee4783a724b7afbe8db252e4299ad1337..62629d1b6123283280398c08ec8d564b47aa574e 100644 (file)
@@ -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;
                }
index 6b3489f20e97d26bfc8659327d82d07c5b12acd6..3adbc1fbec971503f1dc7487798b43214245c8ba 100644 (file)
 #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
index 0255348de30ca5a2808b134277492c70e2784d11..d0d93b88e1d0742194b241bc8eabd104953bbc79 100644 (file)
@@ -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
index 129e0bf82d33bc032026e2446c4443df203c2be1..c9dcf240c707e28ba6d3c13d6cbff66504970137 100644 (file)
@@ -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;
index 4a60230897d4e755ea6f7aa321467a121be2d725..4fcaa2b46ecdb6f6fac596da92fc0ee090773643 100644 (file)
 #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")
index 8229cba7d9893661a01c751254db43f1c5b25a7b..0396217b93dfcc07fe1d0ab9dcbbbb954313445b 100644 (file)
@@ -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:
index 01116edb0fa355132745650a2bc985cdea9488af..98f37989ef313bcb678b023811ef67cecfa49a58 100644 (file)
@@ -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.