We know that emulators have inaccuracies with GBAFE enemy AI. But why?

Hey guys, a little background. I’ve been recording an FE7 HHM 0% growths LTC, and in the interest of maximizing emulator fidelity to console, I used BizHawk instead of VBA at the advice of KirbymastaH. Being the dumbass that I am, I had no idea how emulator cores worked, and ended up doing the whole run on a VBA core, obviating all of my precautions. Oops.

So, no big deal, the emulation differences can’t be that bad, right? I tried converting my route to the more accurate mGBA core, and as early as chapter 12 I noticed a discrepancy (timestamped link to 5:09):

On a VBA core, this archer attacks Dorcas as shown. On an mGBA core, this archer instead attacks Lowen, who is at 16 HP. I calculated the targeting priority for each unit and it seems like Lowen should’ve been the preferred target, and I could not explain how Dorcas could’ve been targeted.

Does anyone know why or how different emulators would treat targeting priority differently? Does VBA, like, accidentally skip part of the calculation?


I have no idea. But on discord, some people have previously shared opinions on VBA.

vba is old and bad dont use it

if it doesn’t work in vba, don’t usa vba
vba is a bad emulator, we can’t be supporting it forever

Sme: it works on mgba but not vba
what the $%@#?
Peerless: VBA bad!

Set a breakpoint and trace the calculation. Both vba-sdl-h and mgba support debugging. Post the save file please.