Classic NES Series Anti-Emulation Measures
It is difficult to take a binary program and establish intent.  I'd rather call these "interesting and unusual programming tricks" than "anti-emulation measures" until more evidence is presented.<p>Mirrored memory is a side effect of unconnected lines on the address bus thus making the content of those bits irrelevant.  Code can take advantage of this to run faster or put tag values into addresses.<p>On a GBA, VRAM is faster than ordinary RAM.  Programs can do well to use it for tight inner loops.<p>Using STM (store multiple) to DMA registers?  Again, go faster.<p>Save type masquerading might be code that helps when running on a development kit, but I admit that I can't think of what use it might have.<p>Self-modifying code that depends on the pre-fetch queue might be the best place to look for intent.  Might be easy to tell if the program is doing it for some larger purpose or simply to fail subtly or overtly if it sees unrealistic processor behavior.<p>Any why would a program do extra work writing to an audio FIFO than need be?