Gfx play

Finally fixed the zooming bug. It was caused by a large amount of swapping between zoomed in values and zoomed out values. I've streamlined the code a bit and it now displays correctly. Also allegedly X>>1 is undefined if X is signed so I've tried to remove anything that might cause undefined behavior.