Finally, after years of searching, I have obtained a GBA cart with a Mega Drive/Genesis emulator on it (thanks to Ankos!). I have been wanting to research this for some time after seeing it on YouTube, and it turns out it is far more interesting than I anticipated. 🧵(1/14)
The first thing I did was attempt to dump the cart via actual hardware with a link cable. This was partially successful: the resulting ROM booted on emulator and showed a splash screen, but then crashed upon trying to boot the game. (2/14)
I had already expected the cart to have some sort of mapper though, so I went to take a look at the code with a disassembler. (3/14)
What I found was that the main ROM (internally named GASA_MENU), after showing the splash, actually copied a secondary, multi-boot (link cable boot) ROM (GASA_ENG) into the memory of the GBA and then executed that ROM. (4/14)
The trouble was, on analysing this second ROM, it seemed to only have around 0x8000 bytes of code. This is far less than would be needed to implement a full blown Genesis emulator. Furthermore, the code seemed to loop infinitely and never return execution back to the cart. (5/14)
This means that there was no way it could, for instance, be loading a new bank onto the cart to jump back to the code there. At this point I was stumped, I had no idea how this could be working, and I figured there must be something I was missing in the code. (6/14)
While I was analysing the code, I had the game on in the background when I accidentally jostled the cart a little bit. Suddenly the screen and audio were completely filled with static. I reinserted the cart, and the game immediately started working again. (7/14)
This took me by surprise, as usually if the data lines of the cart are disconnected at all the game should completely crash, but instead it seemed to be working as if nothing had happened! (8/14)
So I tried it again, deliberately this time, and found that not only did the game not crash, it actually continued running the entire time the cart was partially disconnected! (9/14)
At this point I finally realised what was going on. The GBA was indeed just running a small amount of code from RAM in a loop. That code though, was interfacing with the cartridge to receive audio and video from A GENESIS ON A CHIP IN THE CART. (10/14)
When the cart was disconnected, the audio+video was just reading off an open bus instead, which caused the static to appear. Meanwhile the game itself continued to run on the cartridge hardware. (11/14)
Turns out this wasn't a software emulator at all, but a hardware clone packed into a tiny chip. I have never seen such a tiny chip for this before, but it is the only reasonable explanation. I'm honestly incredibly impressed that they could pull this off. (12/14)
Unfortunately this means it isn't really possible to experiment with the emulator as I had hoped. Still incredible to see though, and I hope that maybe it might be possible to flash other ROMs on there. (13/14).
Here are some pictures of the PCB; the clone chip is the glob top under the battery. Incredibly impressive that this was possible with such a bare-bones design. (14/14)
@Rib
that's actually insane. im also certain there's another cartridge which actually might be running a software emulator cribbed from some coding contest, (it contains ghostbusters and sonic 1)
@kurobutt that's what got me searching in the first place. After analyzing the incomplete dump of that cart I'm 99% sure it is using the same hardware as this one (writes to the exact same addresses, has the same behaviour of copying a second ROM with around the same amount of code into memory ).

@Rib
Ah, kind of sad to hear it because that means the emulator in question I'm referring to is actually lost to time (I don't remember what it was called).

The whole thing is really interesting though, just because of the absurdity of cramming a console-on-a-chip into a GBA cart. It's an unusually high amount of effort for this type of unlicensed release.

@Rib How is the game's performance? The DSTwo flashcart for NDS had a SNES emulator that ran entirely on a CPU built into the cart. But it was bandwidth limited and could only send ~45fps as video.
@Rib the content of that ROM could be interesting
@Rib it would be cool if there was some kind of thing that could turn a gba cartridge into like usb or something so that you could load your save files. and also do this
@tauon @Rib There are a few options for that! They all seem to float around the $50 price point, but if you have a DS with a GBA slot and a flash cart, you can just use that to dump the cart, the save file, write over the save file, whatever you want. (which is what I guess Rib is doing, seeing as they're playing it on a DS)
@Blass_Rose @Rib i thought they were playing it on the ds because it had a gba slot
@Rib in the first post I took “emulator” to be “hardware emulator”; I’d expect a software emulator on that hardware to be unplayably slow. But I wonder if you could extract the game and turn it into a cart that would run on a real Genesis
@Rib Wait, so if you were to completely pull the cart while it's running then it'd drain the battery running the emulator?
@Rib whaaaat? That's way cooler than anything else that could have been going on. Didn't know anyone had done such a thing! 😊
@Rib That's even crazier than running an emulator.