From: Toni Wilen Date: Mon, 16 Jun 2014 16:04:25 +0000 (+0300) Subject: 2810b8 X-Git-Tag: 2810~1 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=2dacddd4f2f4ebb448ed5a4bcaf6f4f69230ed73;p=francis%2Fwinuae.git 2810b8 --- diff --git a/gencpu.cpp b/gencpu.cpp index 3c694661..7608e756 100644 --- a/gencpu.cpp +++ b/gencpu.cpp @@ -3482,6 +3482,7 @@ static void gen_opcode (unsigned long int opcode) fill_prefetch_full (); break; case i_RTE: + addop_ce020 (curi, 0); next_level_000 (); if (cpu_level == 0) { genamode (NULL, Aipi, "7", sz_word, "sr", 1, 0, GF_NOREFILL); @@ -3568,6 +3569,7 @@ static void gen_opcode (unsigned long int opcode) fill_prefetch_full (); break; case i_RTD: + addop_ce020 (curi, 0); if (using_mmu) { genamode (curi, curi->smode, "srcreg", curi->size, "offs", GENA_GETV_FETCH, GENA_MOVEM_DO_INC, 0); genamode (NULL, Aipi, "7", sz_long, "pc", GENA_GETV_FETCH, GENA_MOVEM_DO_INC, 0); diff --git a/include/cpu_prefetch.h b/include/cpu_prefetch.h index e7aa34c1..22517d40 100644 --- a/include/cpu_prefetch.h +++ b/include/cpu_prefetch.h @@ -109,8 +109,11 @@ extern uae_u32 get_word_ce020_prefetch (int); STATIC_INLINE uae_u32 get_long_ce020_prefetch (int o) { uae_u32 v; + uae_u16 tmp; v = get_word_ce020_prefetch (o) << 16; + tmp = regs.db; v |= get_word_ce020_prefetch (o + 2); + regs.db = tmp; return v; } @@ -329,7 +332,7 @@ STATIC_INLINE void mem_access_delay_byte_write (uaecptr addr, uae_u32 v) case CE_MEMBANK_CHIP16: case CE_MEMBANK_CHIP32: wait_cpu_cycle_write (addr, 0, v); - break; + return; case CE_MEMBANK_FAST16: case CE_MEMBANK_FAST32: put_byte (addr, v); diff --git a/include/tabletlibrary.h b/include/tabletlibrary.h index 5e0f4c95..211ea5c0 100644 --- a/include/tabletlibrary.h +++ b/include/tabletlibrary.h @@ -3,6 +3,6 @@ uaecptr tabletlib_startup (uaecptr resaddr); void tabletlib_install (void); extern void tabletlib_tablet (int x, int y, int z, - int pressure, uae_u32 buttonbits, int inproximity, + int pressure, int maxpressure, uae_u32 buttonbits, int inproximity, int ax, int ay, int az); extern void tabletlib_tablet_info (int maxx, int maxy, int maxz, int maxax, int maxay, int maxaz, int xres, int yres); diff --git a/od-win32/avioutput.cpp b/od-win32/avioutput.cpp index 9e655a72..60520f40 100644 --- a/od-win32/avioutput.cpp +++ b/od-win32/avioutput.cpp @@ -50,7 +50,6 @@ static volatile int alive; static volatile int avioutput_failed; static int avioutput_init = 0; -static int actual_width = 320, actual_height = 256; static int avioutput_needs_restart; static int frame_start; // start frame @@ -830,7 +829,7 @@ static int getFromDC (struct avientry *avie) // probably not the best idea to use slow GDI functions for this, // locking the surfaces and copying them by hand would be more efficient perhaps // draw centered in frame - BitBlt (hdcMem, (avioutput_width / 2) - (actual_width / 2), (avioutput_height / 2) - (actual_height / 2), actual_width, actual_height, hdc, 0, 0, SRCCOPY); + BitBlt (hdcMem, 0, 0, avioutput_width, avioutput_height, hdc, 0, 0, SRCCOPY); SelectObject (hdcMem, hbitmapOld); if (GetDIBits (hdc, hbitmap, 0, avioutput_height, avie->lpVideo, (LPBITMAPINFO)lpbi, DIB_RGB_COLORS) == 0) { gui_message (_T("GetDIBits() FAILED (%X)\n"), GetLastError ()); @@ -946,14 +945,7 @@ void AVIOutput_WriteVideo (void) if (avioutput_originalsize || WIN32GFX_IsPicassoScreen ()) { v = getFromBuffer (ae, 1); } else { -#if defined (GFXFILTER) - if (!usedfilter) - v = getFromDC (ae); - else - v = getFromBuffer (ae, 0); -#else - v = getFromDC (avie); -#endif + v = getFromDC (ae); } if (v) queueavientry (ae); @@ -971,9 +963,6 @@ static int AVIOutput_AVIWriteVideo_Thread (struct avientry *ae) if (!avioutput_init) goto error; - actual_width = gfxvidinfo.outbuffer->outwidth; - actual_height = gfxvidinfo.outbuffer->outheight; - // GetDIBits tends to change this and ruins palettized output ae->lpbi->biClrUsed = (avioutput_bits <= 8) ? 1 << avioutput_bits : 0; diff --git a/od-win32/dinput.cpp b/od-win32/dinput.cpp index 9ce63a48..9a4f84e6 100644 --- a/od-win32/dinput.cpp +++ b/od-win32/dinput.cpp @@ -646,7 +646,7 @@ static void tablet_send (void) return; inputdevice_tablet (tablet_x, tablet_y, tablet_z, tablet_pressure, tablet_buttons, tablet_proximity, tablet_ax, tablet_ay, tablet_az); - tabletlib_tablet (tablet_x, tablet_y, tablet_z, tablet_pressure, tablet_buttons, tablet_proximity, + tabletlib_tablet (tablet_x, tablet_y, tablet_z, tablet_pressure, maxpres, tablet_buttons, tablet_proximity, tablet_ax, tablet_ay, tablet_az); } diff --git a/od-win32/win32.h b/od-win32/win32.h index 8e203559..1159ee9f 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -20,12 +20,12 @@ #define LANG_DLL_FULL_VERSION_MATCH 0 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("7") +#define WINUAEBETA _T("8") #else #define WINUAEBETA _T("") #endif -#define WINUAEDATE MAKEBD(2014, 6, 13) +#define WINUAEDATE MAKEBD(2014, 6, 16) //#define WINUAEEXTRA _T("AmiKit Preview") //#define WINUAEEXTRA _T("Amiga Forever Edition") diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index c649a23d..a2ed426d 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -100,7 +100,7 @@ #define ARCHIVE_STRING _T("*.zip;*.7z;*.rar;*.lha;*.lzh;*.lzx") #define DISK_FORMAT_STRING _T("(*.adf;*.adz;*.gz;*.dms;*.ipf;*.scp;*.fdi;*.exe)\0*.adf;*.adz;*.gz;*.dms;*.ipf;*.scp;*.fdi;*.exe;*.ima;*.wrp;*.dsq;*.st;*.raw;") ARCHIVE_STRING _T("\0") -#define ROM_FORMAT_STRING _T("(*.rom;*.roz)\0*.rom;*.roz;") ARCHIVE_STRING _T("\0") +#define ROM_FORMAT_STRING _T("(*.rom;*.roz;*.a500;*.a600;*.a1200;*.a4000)\0*.rom;*.roz;*.a500;*.a600;*.a1200;*.a4000;") ARCHIVE_STRING _T("\0") #define USS_FORMAT_STRING_RESTORE _T("(*.uss)\0*.uss;*.gz;") ARCHIVE_STRING _T("\0") #define USS_FORMAT_STRING_SAVE _T("(*.uss)\0*.uss\0") #define HDF_FORMAT_STRING _T("(*.hdf;*.vhd;*.rdf;*.hdz;*.rdz;*.chd)\0*.hdf;*.vhd;*.rdf;*.hdz;*.rdz;*.chd\0") diff --git a/od-win32/winuaechangelog.txt b/od-win32/winuaechangelog.txt index 13bdb21d..dab9f9fe 100644 --- a/od-win32/winuaechangelog.txt +++ b/od-win32/winuaechangelog.txt @@ -18,6 +18,14 @@ Things that may happen in 2015: - restore only single input target to default. +Beta 8: + +- Tweaked 68020 reading from non-existing memory behavior. +- Added *.a500, *.a600, *.a1200 and *.a4000 extensions to ROM dialog file name filter. +- AVIOutput didn't use (slow) reads from VRAM even when it should have been used it, resulting in + tiny non-scaled video output if "capture before filtering" was not ticked and resolution was large enough. +- AROS ROM updated. + Beta 7: - Yet another BPLxDAT update. If BPL1DAT is written when sprite is already active and no planes enabled in @@ -108,7 +116,7 @@ Beta 1: - If Quickstart mode and sound filter is set to A500 or A1200 emulated or always on: automatically match it with selected config. - DMA debugger now shows CPU and DMA 32-bit chip ram accesses, previously data was truncated to 16-bits. 64-bit - DMA is stil truncated to 32-bit. + DMA is still truncated to 32-bit. 2.8.0 diff --git a/tabletlibrary.cpp b/tabletlibrary.cpp index 241e50da..58943195 100644 --- a/tabletlibrary.cpp +++ b/tabletlibrary.cpp @@ -26,11 +26,11 @@ static int tablet_pressure, tablet_buttonbits, tablet_inproximity; static int tablet_maxx, tablet_maxy, tablet_maxz; static int ksversion; -void tabletlib_tablet (int x, int y, int z, int pressure, uae_u32 buttonbits, int inproximity, int ax, int ay, int az) +void tabletlib_tablet (int x, int y, int z, int pressure, int maxpres, uae_u32 buttonbits, int inproximity, int ax, int ay, int az) { tablet_x = x; tablet_y = y; - tablet_pressure = pressure; + tablet_pressure = pressure << 15; tablet_buttonbits = buttonbits; tablet_inproximity = inproximity; } @@ -55,7 +55,7 @@ static void filltags (uaecptr tabletdata) put_long (tabletdata + 12, tablet_maxx); put_long (tabletdata + 16, tablet_maxy); - //write_log(_T("P=%d BUT=%08X\n"), tablet_pressure, tablet_buttonbits); + //write_log(_T("P=%08X BUT=%08X\n"), tablet_pressure, tablet_buttonbits); // pressure put_long (p, 0x8003a000 + 6);