First, you'll need to format the USB/thumb drive as FAT32. Connect it to your computer.
If you're on Windows, open up Explorer, locate the USB drive, right-click it, and select Format from the context menu. Select the FAT32 option and click the Start button.
If you're on a Mac, open Disk Utility by navigating to Applications > Utilities > Disk Utility. Select your USB drive in the left pane. For Yosemite and older, navigate to the Erase tab, select MS-DOS (FAT) as the Format, give it a name, and click the Erase button. For El Capitan and newer, simply click the Erase button, select MS-DOS (FAT) as the format, give it a name, and click the Erase button.
How this process works is we're going to ask RetroPie to populate a set of folders on the USB drive for us. Then, we'll paste our ROMs into these folders.
Boot up your Pi, safely eject your USB drive and connect it to your Pi. Now, the Pi will create our set of folders. When the process is complete, the LED on your USB drive will stop blinking. If your USB drive doesn't have an LED on it, just wait a few minutes to make sure the process has completed.
Remove the USB drive from your Pi and plug it back into your computer.
You'll need to unzip all of your ROMs (except for MAME) before transferring them. With the exception of MAME, RetroPie cannot read ROMs ending in .zip. So unzip the ROMs for your other systems before transferring.
Copy and paste the unzipped ROMs into the corresponding folder for each emulator/system.
See our guide on unzipping RAR files, should you find any ROMs packaged that way.
Safely eject the USB drive from your computer and connect it to your Pi. RetroPie will now begin automatically transferring your ROMs.
This may take some time. The LED on your USB drive will stop blinking when the process is complete. Again, if your USB drive doesn't have an LED on it, you'll need to do some math (fun!) to know when it's safe to pull your USB drive. Here we go:
USB 2.0 has a maximum theoretical transfer rate of 480 megabits per second. There are 8 bits in a byte, so that's about 60 megabytes per second. Note: your USB drive (and the Pi itself) may not be capable of these speeds, so your results may vary.
For example, if you have 1 gigabyte of ROMs, simply convert that to megabytes (1000MB) and divide it by the USB 2.0 maximum transfer rate (60 megabytes per second) -- 1000MB / 60MB -- so your 1GB transfer should take about 17 seconds.
Add a bit of padding time just in case; it's possible that RetroPie is processing ROMs one by one rather than just batch copying them.
Once the transfer is complete, unplug your USB drive from the Pi.
Before Emulation Station/RetroPie can read your ROMs, you'll need to restart it. You can do this by pressing Start and using the Shut Down option to reboot your Pi.
Once you've rebooted, you will see system icons appear for every system that has ROMs installed. If no ROMs are installed for a system, its icon will not appear.
When you go to add more ROMs later through the same process, it will not remove all your existing ROMs -- it will add the new ROMs and replace those with the exact same filename.
So you can add more ROMs later without losing the ROMs you already have on your system! :)