This is a matter of choice! Sometimes having too much choice makes things hard, that’s for sure.
In the early days, people used to always say “Use a standalone emulator; it’s faster.”
This was before things got updated and working, so just thought I’d clear that up before you read up too much information that is potentially out of date.
A standalone emulators is called this because it runs standalone, without the need for Retroarch. Retroarch is basically a program that houses a whole heap of “cores” to run multiple ROM image types from different consoles.
The Gameshell menu by default is set up with a few different Game Boy emulators: mGba, gpSP and a single standalone emulators, gpSP+.
Retroarch hosts a lot of cores that you can download via the online updater in the Retroarch program. These are made by individual authors. Some of them are written in a cross platform api, or basically language, meaning that you can run in on a variety of systems. Here’s the thing. Some authors wanted to remove their files from Retroarch’s database, so they have more control over releasing things themselves; however apparently Retroarch said they didn’t want to.
There’s probably more to it than that, but that’s the general gist. For this reason, some people think and feel that it is more “ethical” to run a standalone emulator, since it respects the wishes of a developer more. That said, some developers simply publish emulators in both forms, out of convenience and the user’s personal preferences. For that reason, we have 2 versions of gpSP. The gpSP+ is the standalone.
Standalone emulators work by themselves, without Retroarch. That means that any features that it has needs to be hard coded in. Retroarch cores work within Retroarch, meaning that any optimisations, features and settings etc are generally controlled by Retroarch. This includes control schemes, state save/loads, cheats and graphic settings. Because this is an extra layer of information, it is said that this takes up more battery power to run. I haven’t confirmed this myself.
That’s to do with built in emulators. If you want to install a standalone emulator, you will need to know how to use scripts, change permissions, build/compile files etc. It’s a fiddly process that isn’t for the faint hearted, but is rewarding one you manage to make something work. This is more of a custom job to make something work that hasn’t already been ported.
Retroarch on the other uses a data base of pre compiled cores that you can download, almost like an app store. Of course you can also compile from scratch for Retroarch and it yields similar satisfaction to standalone - sometimes resulting in a core that runs faster than its pre made counter part.
mGBA and gpSP are both different emulators with different focusses. mGBA focusses more on features, eg hardware enhancements, super gameboy borders, GBC colour palettes etc, and doesn’t require a BIOS to run. gpSP on the other hand has its main focus on speed, with less bells and whistles, and requires the user to provide a GBA BIOS file in order to run. This is something that you need to acquire yourself, and put into the correct directory.
Depending on how you’ve set up your Gameshell, your kernel, your clock speed or anything else, your mileage may vary as to which one runs “better.” The word better is subjective, focussing on either accuracy or performance being the qualifying factor. It comes down to a balance of what is important to you, and for which game. One emulator might work better for one game than another. Another might not even be compatible. The fact that there are multiple emulators out there gives us a choice.
Personally, if it exists in Retroarch, I prefer to use that. It allows me to keep all my key bindings, graphic settings, and overall user experience consistent across the board. I am not bothered by the possible increased power drain, as it will always be longer than my attention span. Furthermore, my personal experience has Retroarch having a better image quality than standalone, simply due to screen “tearing” more in some standalone emulators; especially those without the ability to enable V-Sync. This is something that can be activated in Retroarch.
The only exception for me is Drastic for Nintendo DS, Mupen64+ for N64, Mednafen for Virtual Boy and ScummVM for point and click games. I haven’t found cores that runs better in Retroarch than these standalone emulators. As for which emulator I choose for Gameboy, I choose mGBA for Gameboy colour, Super Gameboy and Gameboy classic, as they barely need any computing power, and run at full speed, with the most additional hardware features. The Retroarch gpSP core is what I use for GBA games, as I find that it runs more consistently, I never have issues with frame rates for more demanding roms, and I can keep all of my save files/states in the same format across multiple systems. That’s not to say that I don’t occasionally don’t use mGBA for GBA games, especially for games such as Solar boy Bokatai; needing a sunlight sensor emulated, WarioWare; needing a gyroscope, and any other games that may need some context specific hardware enhancements emulated.
This is my opinion. You are free to choose whichever one you want. But please, don’t just assume that because it’s a standalone, it is immediately faster.