]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Manual BPLxDAT writes are now accurate when FMODE>0.
authorToni Wilen <twilen@winuae.net>
Fri, 26 Oct 2018 17:15:57 +0000 (20:15 +0300)
committerToni Wilen <twilen@winuae.net>
Fri, 26 Oct 2018 17:15:57 +0000 (20:15 +0300)
custom.cpp

index 82fe8ccbb7580dfe22d24b0c6669305df29de50f..5ae7ccaffebc8b4c682cc5a444378f3f02124225 100644 (file)
@@ -6161,7 +6161,15 @@ static void BPLxDAT (int hpos, int num, uae_u16 v)
        }
        flush_display (fetchmode);
        fetched[num] = v;
-       fetched_aga[num] = v;
+       if ((fmode & 3) == 3) {
+               fetched_aga[num] = ((uae_u64)last_custom_value2 << 48) | ((uae_u64)v << 32) | (v << 16) | v;
+       } else if ((fmode & 3) == 2) {
+               fetched_aga[num] = (last_custom_value2 << 16) | v;
+       } else if ((fmode & 3) == 1) {
+               fetched_aga[num] = (v << 16) | v;
+       } else {
+               fetched_aga[num] = v;
+       }
        if (num == 0 && hpos >= 8) {
                bpl1dat_written = true;
                bpl1dat_written_at_least_once = true;