]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
imported winuaesrc2010.zip
authorToni Wilen <twilen@winuae.net>
Wed, 23 Dec 2009 10:46:59 +0000 (12:46 +0200)
committerToni Wilen <twilen@winuae.net>
Mon, 22 Feb 2010 19:50:15 +0000 (21:50 +0200)
custom.c
od-win32/win32.h
od-win32/winuaechangelog.txt

index d73ac420da2fb78e11000989ab1364b1b9f3f0ed..e1ff89db0fa5ad68c30be3db76069dedcc882ce5 100644 (file)
--- a/custom.c
+++ b/custom.c
@@ -2810,16 +2810,21 @@ static void calcdiw (void)
        int vstrt = diwstrt >> 8;
        int vstop = diwstop >> 8;
 
-       if (diwhigh_written) {
-               hstrt |= ((diwhigh >> 5) & 1) << 8;
-               hstop |= ((diwhigh >> 13) & 1) << 8;
+       // vertical in ECS Agnus
+       if (diwhigh_written && (currprefs.chipset_mask & CSMASK_ECS_AGNUS)) {
                vstrt |= (diwhigh & 7) << 8;
                vstop |= ((diwhigh >> 8) & 7) << 8;
        } else {
-               hstop += 0x100;
                if ((vstop & 0x80) == 0)
                        vstop |= 0x100;
        }
+       // horizontal in ECS Denise
+       if (diwhigh_written && (currprefs.chipset_mask & CSMASK_ECS_DENISE)) {
+               hstrt |= ((diwhigh >> 5) & 1) << 8;
+               hstop |= ((diwhigh >> 13) & 1) << 8;
+       } else {
+               hstop += 0x100;
+       }
 
        diw_hstrt = hstrt;
 
@@ -2892,8 +2897,11 @@ STATIC_INLINE uae_u16 DENISEID (void)
        if (currprefs.cs_deniserev >= 0)
                return currprefs.cs_deniserev;
 #ifdef AGA
-       if (currprefs.chipset_mask & CSMASK_AGA)
+       if (currprefs.chipset_mask & CSMASK_AGA) {
+               if (currprefs.cs_ide == IDE_A4000)
+                       return 0xFCF8;
                return 0x00F8;
+       }
 #endif
        if (currprefs.chipset_mask & CSMASK_ECS_DENISE)
                return 0xFFFC;
@@ -2942,7 +2950,7 @@ STATIC_INLINE int GETHPOS (void)
        return islightpentriggered () ? hpos_lpen : (issyncstopped () ? hpos_previous : current_hpos ());
 }
 
-#define HPOS_OFFSET 3
+#define HPOS_OFFSET 4
 
 STATIC_INLINE uae_u16 VPOSR (void)
 {
@@ -3570,7 +3578,7 @@ static void DIWSTOP (int hpos, uae_u16 v)
 
 static void DIWHIGH (int hpos, uae_u16 v)
 {
-       if (!(currprefs.chipset_mask & CSMASK_ECS_DENISE))
+       if (!(currprefs.chipset_mask & (CSMASK_ECS_DENISE | CSMASK_ECS_AGNUS)))
                return;
        if (!(currprefs.chipset_mask & CSMASK_AGA))
                v &= ~(0x0008 | 0x0010 | 0x1000 | 0x0800);
index 8d94c8918a2f9381802fda5952c32977d03cadee..34ceb21e7751620e8bdc4049633fbae3fbf7d01f 100644 (file)
 #define GETBDM(x) (((x) - ((x / 10000) * 10000)) / 100)
 #define GETBDD(x) ((x) % 100)
 
-#define WINUAEPUBLICBETA 1
+#define WINUAEPUBLICBETA 0
 #define LANG_DLL 1
 
-#define WINUAEBETA L"Beta 3"
-#define WINUAEDATE MAKEBD(2009, 12, 22)
-#define WINUAEEXTRA L"RC1"
+#define WINUAEBETA L""
+#define WINUAEDATE MAKEBD(2009, 12, 23)
+#define WINUAEEXTRA L""
 #define WINUAEREV L""
 
 #define IHF_WINDOWHIDDEN 6
index a6e1edec2deca751e1189ac8bba3e0935ab46663..69b0fc0c66619fc1403d593b7f4f15d04b5d7392 100644 (file)
@@ -2,13 +2,13 @@
 Beta 3: (RC1)
 
 - emulate OCS Denise "bug", vertical DIW already active, matches again
-  with horizontal start DIW=0 or 1 -> vertical DIW stops until next
+  with horizontal start DIW=0 or 1 -> DIW stays inactive until next
   frame. (Kefrens Megademo 8, Snake Bite part)
 - emulate ECS Denise (and AGA) "bug fix", horizontal start DIW=0 or 1
   gets ignored. (=b2 fix -> ECS Denise/AGA only)
-- ECS Denise DENISEID register returned 0x00FC, correct is 0xFFFC
 - sometimes sprite was visible even if bitplane DMA should have
   disabled it (older bug)
+- ECS Denise DENISEID register returned 0x00FC, correct is 0xFFFC
 
 Beta 2: