Until now, emulators have been rejected under this rule
> 2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps
I.e. "all the code this app ever runs has to be there when the app goes to app review"
This rule change on January 29 allowed for mini games and streaming games
> 4.7 Mini apps, mini games, streaming games, chatbots, and plug-ins: Apps may offer certain software that is not embedded in the binary, specifically mini apps and games, streaming games, chatbots, and plug-ins.
And then specifically this addition on April 10
> 4.7 [...] Additionally, retro game console emulator apps can offer to download games
is what allowed retro game emulators.
Source: https://www.appstorereviewguidelineshistory.com