From: Toni Wilen Date: Fri, 25 Apr 2025 16:05:26 +0000 (+0300) Subject: 6000b23 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=7f4b519ff85c92ec88a3064d5b806657f69c0a2a;p=francis%2Fwinuae.git 6000b23 --- diff --git a/audio.cpp b/audio.cpp index 06a741e2..72eae356 100644 --- a/audio.cpp +++ b/audio.cpp @@ -1511,7 +1511,7 @@ static void audio_low_period_hack(struct audio_channel_data *cdp) { // if very low period sample repeats, set higher period value to not cause huge performance drop // For example: Spaceport, R-Type II, Rambo III - int nr = cdp - audio_channel; + int nr = addrdiff(cdp, audio_channel); if ((cdp->state == 2 || cdp->state == 3) && cdp->per < PERIOD_MIN_LOOP * CYCLE_UNIT && !(intena & (1 << (nr + 7))) && !(currprefs.cs_hacks & 32)) { int add = 1; if (cdp->len == 0 || cdp->len > 1000) { diff --git a/events.cpp b/events.cpp index a265dda8..6ca0159f 100644 --- a/events.cpp +++ b/events.cpp @@ -432,7 +432,7 @@ void event2_newevent_xx(int no, evt_t t, uae_u32 data, evfunc2 func) e->evtime = et; e->handler = func; e->data = data; - event2idx = (e - eventtab2) + 1; + event2idx = addrdiff(e, eventtab2) + 1; MISC_handler(); } diff --git a/od-win32/rp.cpp b/od-win32/rp.cpp index 89efd2f1..69ed48fd 100644 --- a/od-win32/rp.cpp +++ b/od-win32/rp.cpp @@ -915,10 +915,6 @@ static void set_screenmode (struct RPScreenMode *sm, struct uae_prefs *p) int width, height; bool half; -// Sleep(10000); -// smm = RP_SCREENMODE_SCALE_4X + 0; -// smm_m = smm; - storeflags = sm->dwScreenMode; minimized = 0; if (display) { diff --git a/od-win32/win32.h b/od-win32/win32.h index d4506a9b..678be74c 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("22") +#define WINUAEBETA _T("23") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2025, 4, 19) +#define WINUAEDATE MAKEBD(2025, 4, 25) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32_scaler.cpp b/od-win32/win32_scaler.cpp index c36673bd..c0263f6d 100644 --- a/od-win32/win32_scaler.cpp +++ b/od-win32/win32_scaler.cpp @@ -48,8 +48,6 @@ static bool getmanualpos(int monid, int *cxp, int *cyp, int *cwp, int *chp) cy = *cyp; v = currprefs.gfx_xcenter_pos; if (v >= 0) { - // v6 adjustment - v -= 1 << RES_MAX; if (v < 0) { v = 0; } @@ -815,7 +813,7 @@ uae_u8 *getfilterbuffer(int monid, int *widthp, int *heightp, int *pitch, int *d *widthp = w; *heightp = h; *depth = vb->pixbytes * 8; - return vb->bufmem + extra * sizeof(uae_u32); + return vb->bufmem ? vb->bufmem + extra * sizeof(uae_u32) : NULL; } #endif diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index 377139f6..3ca91d59 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -20669,12 +20669,12 @@ static void values_to_hw3ddlg (HWND hDlg, bool initdialog) if (workprefs.gf[filter_nativertg].gfx_filter_autoscale == AUTOSCALE_MANUAL) { xrange1 = -1; - xrange2 = 1800; + xrange2 = 1900; yrange1 = xrange1; yrange2 = xrange2; } else if (workprefs.gf[filter_nativertg].gfx_filter_autoscale == AUTOSCALE_OVERSCAN_BLANK) { xrange1 = 0; - xrange2 = 1800; + xrange2 = 1900; yrange1 = 0; yrange2 = 700; } else if (workprefs.gf[filter_nativertg].gfx_filter_autoscale == AUTOSCALE_INTEGER || @@ -21423,9 +21423,6 @@ static INT_PTR CALLBACK hw3dDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM SetDlgItemInt (hDlg, IDC_FILTERVZV, fdwp->gfx_filter_right_border, TRUE); SetDlgItemInt (hDlg, IDC_FILTERHOV, fdwp->gfx_filter_top_border, TRUE); SetDlgItemInt (hDlg, IDC_FILTERVOV, fdwp->gfx_filter_bottom_border, TRUE); - if (!full_property_sheet) { - reset_drawing(); - } } else { if (h == hz) { fd->gfx_filter_horiz_zoom = (float)SendMessage (hz, TBM_GETPOS, 0, 0); diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 223c8242..9140f6cb 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -1,4 +1,20 @@ +Beta 23: + +- Automatic center filter mode fixed. +- ECS superhires filtered lores implemented. Filtered lores odd/even genlock data is also now "filtered". +- In some situations right border had 1 lores pixel difference between border and hblank depending on drawing mode. +- Fixed AVI recording crash. +- Fast drawing mode + NTSC: left and right border glitches should be finally fixed. +- Fixed fast draw mode last line changing between blank/border when mouse was near the border. +- When reset was executed, new screen width included old short/long state. In NTSC mode new screen width was randomly 2 lores pixels wider. +- When in fast non-CE mode, switching from RTG to chipset and if fast RGA buffer become full, it was possible for CPU chipset writes to arrive in Denise side in different order, causing strange side-effects. (Frontier black screen) +- Partial fix for A2024 emulation. (All display port monitors need some updates) +- Fixed slirp use after free bug (Andreas Grabher) +- Added (config file only currently, "rtg_noautomodes=true") option that disables uaegfx automatically generated screen modes. With Picasso96 v3.4+ and P96Prefs new modes can be created manually, just like when using real hardware. Note: Old Picasso96 and/or PicassoMode utility don't support manual uaegfx modes. +- Added 3840x1080 to known uaegfx resolutions list ("known" = gets static mode id if autogenerated) + + Beta 22: - Fast mode drawing + HAM + left TV overscan blanking part of display caused HAM artifacts.