// very conservative and wrong
-#define gput_fill(w, h) (23 + (4 + (w) / 32u) * (h))
+#define gput_fill(w, h) (23 + (4 + (w) / 16u) * (h))
#define gput_copy(w, h) ((w) * (h))
#define gput_poly_base() (23)
#define gput_poly_base_t() (gput_poly_base() + 90)
#define gput_line(k) (8 + (k))
#define gput_sprite(w, h) (8 + ((w) / 2u) * (h))
+// sort of a workaround for lack of proper fifo emulation
+#define gput_sum(sum, cnt, new_cycles) do { \
+ sum += cnt; cnt = new_cycles; \
+} while (0)