From: Toni Wilen Date: Fri, 26 Oct 2018 17:15:57 +0000 (+0300) Subject: Manual BPLxDAT writes are now accurate when FMODE>0. X-Git-Tag: 4100~40 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=ee183525a9c29d5aa0331600f4dddad3244bbade;p=francis%2Fwinuae.git Manual BPLxDAT writes are now accurate when FMODE>0. --- diff --git a/custom.cpp b/custom.cpp index 82fe8ccb..5ae7ccaf 100644 --- a/custom.cpp +++ b/custom.cpp @@ -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;