Browse code

(screen.c)Fixed redraw issue

neauoire authored on 03/09/2023 01:34:04
Showing 3 changed files
... ...
@@ -214,11 +214,9 @@ screen_deo(Uint8 *ram, Uint8 *d, Uint8 port)
214 214
 			Uint16 height = uxn_screen.height;
215 215
 			if(x < width && y < height)
216 216
 				layer[x + y * width] = color;
217
-			x += 1;
218
-			y += 1;
219
-			screen_change(x, y, x, y);
220
-			if(d[0x6] & 0x1) POKE2(port_x, x);
221
-			if(d[0x6] & 0x2) POKE2(port_y, y);
217
+			screen_change(x, y, x + 1, y + 1);
218
+			if(d[0x6] & 0x1) POKE2(port_x, x + 1);
219
+			if(d[0x6] & 0x2) POKE2(port_y, y + 1);
222 220
 		}
223 221
 		break;
224 222
 	}
... ...
@@ -31,8 +31,11 @@ WITH REGARD TO THIS SOFTWARE.
31 31
 #define N2_(v) { r = (v); L = r; X = r >> 8; }
32 32
 #define L2_(v) { r = (v); Y = r; Z = r >> 8; }
33 33
 
34
+#define DEI(p) (dei_masks[p] ? emu_dei(u, (p)) : u->dev[(p)])
35
+#define DEO(p, v) { u->dev[p] = v; if(deo_masks[p]) emu_deo(u, p); }
36
+
34 37
 #define FLIP      { s = ins & 0x40 ? &u->wst : &u->rst; }
35
-#define SHIFT(y)  { r = s->ptr + (y); ptr = s->dat + r - 1; s->ptr = r; }
38
+#define SHIFT(y)  { s->ptr += (y); ptr = s->dat + s->ptr - 1; }
36 39
 #define SET(x, y) { SHIFT((ins & 0x80) ? x + y : y) }
37 40
 
38 41
 int
... ...
@@ -13,8 +13,6 @@ WITH REGARD TO THIS SOFTWARE.
13 13
 
14 14
 #define PEEK2(d) (*(d) << 8 | (d)[1])
15 15
 #define POKE2(d, v) { *(d) = (v) >> 8; (d)[1] = (v); }
16
-#define DEI(p) (dei_masks[p] ? emu_dei(u, (p)) : u->dev[(p)])
17
-#define DEO(p, v) { u->dev[p] = v; if(deo_masks[p]) emu_deo(u, p); }
18 16
 
19 17
 /* clang-format on */
20 18