Some small 8514/a / Mach8 fixes.

This commit is contained in:
OBattler
2023-07-30 02:45:53 +02:00
parent c12cfad5f1
commit b810d3edc1
3 changed files with 13 additions and 10 deletions

View File

@@ -83,11 +83,11 @@ typedef struct ibm8514_t {
int16_t dy;
int16_t err;
uint32_t src;
uint16_t dest;
uint32_t dest;
uint32_t newsrc_blt;
uint16_t newdest_blt;
uint32_t newdest_blt;
uint32_t newdest_in;
uint16_t newdest_out;
uint32_t newdest_out;
uint8_t *writemono;
uint8_t *nibbleset;
int x_count;

View File

@@ -1402,7 +1402,8 @@ ibm8514_accel_start(int count, int cpu_input, uint32_t mix_dat, uint32_t cpu_dat
}
} else {
while (count-- && (dev->accel.ssv_len >= 0)) {
if (dev->accel.cx >= dev->accel.clip_left && dev->accel.cx <= clip_r && dev->accel.cy >= dev->accel.clip_top && dev->accel.cy <= clip_b) {
if ((dev->accel.cx >= dev->accel.clip_left) && (dev->accel.cx <= clip_r) &&
(dev->accel.cy >= dev->accel.clip_top) && (dev->accel.cy <= clip_b)) {
switch ((mix_dat & mix_mask) ? frgd_mix : bkgd_mix) {
case 0:
src_dat = bkgd_color;
@@ -3629,7 +3630,8 @@ bitblt:
dx = (int64_t)dev->accel.dx;
while (1) {
if (dx >= (((int64_t)dev->accel.clip_left) * 3) && dx <= (((uint64_t)clip_r) * 3) && dev->accel.dy >= (dev->accel.clip_top << 1) && dev->accel.dy <= (clip_b << 1)) {
if ((dx >= (((int64_t)dev->accel.clip_left) * 3)) && (dx <= (((uint64_t)clip_r) * 3)) &&
(dev->accel.dy >= (dev->accel.clip_top << 1)) && (dev->accel.dy <= (clip_b << 1))) {
READ(dev->accel.src + (dev->accel.ge_offset << 2) + cx, src_dat);
READ(dev->accel.dest + (dev->accel.ge_offset << 2) + dx, dest_dat);
@@ -3649,7 +3651,8 @@ bitblt:
}
while (count-- && dev->accel.sy >= 0) {
if (dev->accel.dx >= dev->accel.clip_left && dev->accel.dx <= clip_r && dev->accel.dy >= dev->accel.clip_top && dev->accel.dy <= clip_b) {
if ((dev->accel.dx >= dev->accel.clip_left) && (dev->accel.dx <= clip_r) &&
(dev->accel.dy >= dev->accel.clip_top) && (dev->accel.dy <= clip_b)) {
if (pixcntl == 3) {
if (!(dev->accel.cmd & 0x10) && ((frgd_mix != 3) || (bkgd_mix != 3))) {
READ(dev->accel.src + dev->accel.cx, mix_dat);

View File

@@ -1142,8 +1142,8 @@ mach_accel_start(int cmd_type, int cpu_input, int count, uint32_t mix_dat, uint3
break;
}
if ((dev->accel.dx) >= clip_l && (dev->accel.dx) <= clip_r &&
(dev->accel.dy) >= clip_t && (dev->accel.dy) <= clip_b) {
if (((dev->accel.dx) >= clip_l) && ((dev->accel.dx) <= clip_r) &&
((dev->accel.dy) >= clip_t) && ((dev->accel.dy) <= clip_b)) {
if (mach->accel.dp_config & 0x02) {
READ(dev->accel.src + (dev->accel.cx), poly_src, dev->local);
poly_src = ((poly_src & rd_mask) == rd_mask);
@@ -2073,8 +2073,8 @@ mach_accel_start(int cmd_type, int cpu_input, int count, uint32_t mix_dat, uint3
break;
}
if ((dev->accel.dx) >= clip_l && (dev->accel.dx) <= clip_r &&
(dev->accel.dy) >= clip_t && (dev->accel.dy) <= clip_b) {
if (((dev->accel.dx) >= clip_l) && ((dev->accel.dx) <= clip_r) &&
((dev->accel.dy) >= clip_t) && ((dev->accel.dy) <= clip_b)) {
switch (mix ? frgd_sel : bkgd_sel) {
case 0:
src_dat = dev->accel.bkgd_color;