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);
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);
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;
}
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);
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);
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
// 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 ());
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);
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;
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);
}
#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")
#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")
- 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
- 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
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;
}
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);