Well, first off, are you sure the Pokémon you're testing on doesn't just have a neutral ability? If they have Hardy, Docile, Serious, Bashful or Quirky, then it should appear all black.
Apart from that, the redfont and bluefont literals should just be pointers to a word-aligned offset that contains only those four bytes; the rest of the zeroes are completely unnecessary.