Scanning topics for years on PokeCommunity, without fail I have found some basic emulation-related questions in every thread. This is my best attempt at answering them as brief as I can. I will only cover computers in general for GBA and GBC, and Android for the same. I'm not very reliable on the topic of iOS emulation, because it's been years since I've even attempted anything on there related to this subject. If anyone would like to talk about the latest stuff about iOS, I can probably stuff it in here.
Question #1: Which emulator should I use?
I'd like to address this because I still see a lot of plain VBA around here for both GBA and GBC. For Pokemon itself this is better than nothing. However, with more advanced hacking techniques (especially in sound), we have engine quirks that VBA will screw up with. With GBC it's even worse. GBA and GBC emus aren't a ton and a half, so my recomendation list basically goes:
GBA, Most Computer OSes:
1. Your new best friend, mGBA: Very accurate, blazing fast, also good at GBC emulation (even has super game boy borders), not much of a need to BIOS hunt, it's regularly improved on, you really can't go wrong with this. Unless of course your computer's too old to handle it properly. In that case...
2. VBA-M is here. If nothing else, throw out all VBA variants and switch to this. This is basically where VBA itself has been continuing, having put together most of the other variants' features.
GBC only, Most PC OSes:
1. SameBoy: A newer kid on the block, but it's more than proved itself in my book. Extremely accurate (moreso than Gambatte) and it has support for a lot of the handheld's addons.
2. BGB is also a great choice, especially if you're looking for Super Game Boy border graphics. However, it's Windows only unless you want to fiddle with Wine/Wineskin.
3. Gambatte still gets updates, but only as a core in RetroArch looking at the GitHub. It is however, still accurate and speedy enough for Pokemon. Speaking of which...
Every single one of these except for BGB are also RetroArch cores. RA is not an emulator itself, but houses a very large amount of emulators always at their very latest update. This is really more important to you if you're emulating a lot of other systems, want your emulators as up to date as possible, and don't mind a bit of setup time. RA is also great for the fact that it's available on as many things as humanly possible including most mobile platforms, internet browsers, and very old computers. That means the world when transferring files between your mobile devices and computers, I assure you.
MacOS users also have OpenEmu available to them. It applies a lot of the OS's ideas onto emulation, and it generally works quite well. Keep in mind where the ROMs go though as you're going to be visiting there an awful lot, since you're in a Romhacking place right now.
1. I use RA very much on this platform and it's free, however you may not agree with it for some of the reasons mentioned above (hint: I use a keyboard or gamepad 80% of the time and changed the menu driver). You can find an extremely informative tutorial for RA on Android here. Refer to the above computer suggestions for RA; you may need the faster options if your device isn't up to snuff.
2. If you don't mind forking over some dough, GBA.Emu and GBC.Emu are great and easier to configure. However, Robert updates a lot less often nowadays.... I'd strongly suggest trying #1 first.
3. People hate paying for things on mobile for one reason or another as evidenced by the ton of look-alike emulators in the play store, so I hear a lot of recommendations for My Boy! and My Old Boy! These are probably better in their paid versions than #2 as they're being actively updated still, but I haven't really used them all that much so I can't personally say. One thing I can say for sure though is that you can use the link cable between two ROMs, which depending on the hack is a very good thing (most hacks just change the trade evolutions around).
Another note: get a file explorer, no one wants their download folder being a garbage can. I suggest getting RAR so you can open things like Zip files. This has a built-in file explorer, but if you're not a fan ES File Explorer is popular (I would highly suggest getting Pro, however).
1. The tutorial covers very few patchers, so here's a list for most platforms for the most common types:
Windows: Floating IPS patches IPS and BPS, and has notable improvements over Lunar. I use Tsukuyomi for UPS, but UPS is still around. For XDelta, use Delta Patcher.
MacOS: MultiPatch covers about everything, but with Mojave on the way... you may end up needing to look further down or looking towards Wineskin. It looks like the newest OS update will strip you of the ability to use a lot of apps, so be aware of that.
Linux: I honestly have no clue here. If someone could fill me in that would be great. I've seen Floating IPS versions for Linux, however.
Android: I use two. IPS Patcher for most things, and UniPatcher for things like SNES headers. Both of these cover most formats. If you're only doing Pokemon, IPS Patcher should do it for you.
All platforms that can use Chrome or Firefox: There's actually a broweser-based patcher around, found here, that can handle IPS and BPS formats. This will not work with Safari or Internet Explorer/EDGE: http://wanderingcoder.net/projects/JPS/
2. We have a newer patch format quickly gaining steam: BPS. This is basically the best of IPS and UPS or XDelta put together, and is able to be a much smaller size than IPS. These work wonders, and I feel that most Pokemon hacks can use this format with no trouble. You can create these with mainly Floating IPS and Beat. I would like to encourage all hackers to try this patch type, it's pretty great!
Question #3: How do I transfer saves?
Here is a good set of rules:
1. Keep your saves in one certain folder.
2. Keep your ROMs organized into folders as you see fit (I like to separate my folders by console).
3. Always name a ROM patched with a hack differently from your "vanilla" ROM.
4. Always name an updated version by the same name all the time, just replacing the file.
By doing this the generated save file stays with the ROM 100% of the time. For soft patching, basically you want to keep the name of both the ROM and patch the same as the save all of the time instead. As for transferring between emulators, this is quite easy for GBA and GBC.
If it's a .sav file: Drop it in your save folder and you're good to go.
If it's a .sa1 file: Rename to .sav, or .srm if you're using RetroArch, then drop it in your save folder. Also, refer to Question #1 and upgrade your emulator.
If it's a .sav file and you want to use it with RetroArch: You should be able to just rename the .sav to .srm, and then put it in your save folder.
If it's a .srm file used by RetroArch: rename the .srm to .sav, and you're good to go. If both your computer and mobile device use RA, you can just put it into your save folder. RA just likes to have the same savefile name for every platform, which is actually a bit elegant.
Don't do this with save states, unless you're transferring between the exact same type of the exact same version of emulator. States are extremely picky for good reason. Just make a save file as Pokemon can save in most places, and transfer it that way.
Also, keep in mind that you'll usually need to point your emulator towards your save folder. If it doesn't know where it is, what happens to save files largely depends on the emulator.
Question #4: I have a problem with my save!
Change your savefile type to 128kbps. Unfortunately I cannot help you if your save has corrupted. I've also heard that on regular VBA changing your video renderer to OpenGL also helps.
As a sidenote, I've never run into this problem with mGBA anymore personally. It may still happen rarely. I think VBA-M still does, but it's a bit more stable about it. Same thing goes with RTC issues (note: Turn your RTC on if your internal battery has run dry).
It's nice to see another tutorial here aimed towards rom gamers, like myself... Nice Job! :)
I used retro arch before. It's an all around ok android emulator for free... an alright multi platform emu (in most cases).
Personally, it's worth the money though for My Boy! (GBA) and My Old Boy! (GB/GBC) instead. Much more control as far as setting up your game screen exactly how you want it, rumble feature, patching option included for insta-play, very little obscructing your vid game screen view due to simple controller design, widget option for your favorite ROMs, and very versatile. Also, if you're used to your file manager setup, it's easy enough to navigate through My Boy! or My Old Boy! menu screen. In my case, I use modded ones, so if anything goes sour with the emu during my testings... I can simply install my backup archived one to replace it.