merge preprocessor from pokecrystal c0a01c99

That version was better anyway.