Lots of SDL2 preprocessor fixes and generic crap. This is already a mess.