Can't you just invert the address by flipping its bits with an xor filt? Assume you have 3 address bits you xor with binary 111, so address 000 xor 111 = 111, 001 xor 111 = 110, 010 xor 111 = 101, 011 xor 111 = 100, 100 xor 111 = 011, 101 xor 111 = 010, 110 xor 111 = 001, 111 xor 111 = 000.
the prombel in this my first version is that the ram horizontal addres needs to be inverted
I kinda like pistons because they can move multiple times in a single frame ;) +1