]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
2810b8
authorToni Wilen <twilen@winuae.net>
Mon, 16 Jun 2014 16:04:25 +0000 (19:04 +0300)
committerToni Wilen <twilen@winuae.net>
Mon, 16 Jun 2014 16:04:25 +0000 (19:04 +0300)
gencpu.cpp
include/cpu_prefetch.h
include/tabletlibrary.h
od-win32/avioutput.cpp
od-win32/dinput.cpp
od-win32/win32.h
od-win32/win32gui.cpp
od-win32/winuaechangelog.txt
tabletlibrary.cpp

index 3c694661584c80b6b2aa9abda0a8e396bf0b6fb6..7608e75627bf563aed1b1b3b0322249c53c72d85 100644 (file)
@@ -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);
index e7aa34c1e2142327d4e68aa5a4b677dad31bd062..22517d40ef35f39414815f6fd14f8270558a2765 100644 (file)
@@ -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);
index 5e0f4c951668207f5300f21f1d8440e7e001134a..211ea5c0e851a8a7d84bf55d77250787c2e22807 100644 (file)
@@ -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);
index 9e655a72ee4a68ebdb91ea2b44fc0702f5340d4e..60520f40ac691bcee14daa423d63f08d3b275d60 100644 (file)
@@ -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;
 
index 9ce63a48fba9814ba434cbd7f77e40126e63c127..9a4f84e65d440086359ed79f3edd6e8e5b0eae8e 100644 (file)
@@ -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);
 }
 
index 8e203559086b53dffd98a2f06974e2d5b4ef0c55..1159ee9f5a17b585f4312f38030d0c09a2e66373 100644 (file)
 #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")
index c649a23d4fecc79545553e077861bb14db9f5b90..a2ed426d828972c76281b6e49af7742e25c380c4 100644 (file)
 #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")
index 13bdb21d7c553b12d4f37212f8e6103acc350825..dab9f9fe10ef50d702cbcee54d200ed439b4e7ec 100644 (file)
@@ -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
 
index 241e50da00823c4695958e4d5d54ef5a26c49d62..58943195efb7c51b6a4818d7d246819c674f6a4e 100644 (file)
@@ -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);