In my opinion, putting your roms on the sd card is not the way to go. Ever since I switched to putting only retropie on the sd card and all the roms on a usb flash drive, I haven’t had any problems with the card corrupting. whereas, with the roms on the card, it would corrupt at least once a week. (usually when a rom doesn’t exit properly and I’m forced to pull the power, but sometimes for no reason)

It’s also much easier to move roms over to your system because you can just pull the usb drive, put it in your computer and move them over (or edit them). I also recommend putting your save files and savestate directories on the flash drive. Then you dont lose all your saves every time the sd card corrupts. This can be super frustrating when you’ve put in 20 hours on Castlevania: Symphony of the Night

In order to use a flash drive for rom storage you need to point each emulator in es_systems.cfg to the correct directory on the flash drive. I recommend calling the parent rom directory on the flash drive “romz” instead of “roms.” Since there is a USB copy script automatically enabled when you install retropie, it will automatically create a “roms” directory with sub folders on the flash drive and if it detects any roms in that folder next time you plug in the flash drive it will automatically move the roms to the sd card, which will kill all your sd card space and defeat the purpose of usb rom storage. I still cant figure out how to disable the rom copy service so any help on that would be appreciated.

Other things to know: you’ll need to do some stuff to get your pie to automount your usb drive every time it boots. This article walks you through it: http://www.bobjectsinc.com/tinycomputers/raspbian-automatically-mount-usb-drives/

Disadvantages of USB storage: It takes up a USB slot, so that will either mean one less controller, no wireless adapter, or the need for a USB hub, which I dont really like the thought of. I’ve seen that they can cause a bunch of controller issues and the use for a large peripheral like that sort of kills the portability and ease of the raspi.

my solution: I use a usb adapter for SNES controller that hooks two controllers to one usb port. http://www.ebay.com/itm/Dual-USB-adapter-for-SNES-controller-Super-Nintendo-/200375560296?pt=US_Video_Game_Controllers&hash=item2ea7506868

It works great except on some games if the player 1 controller doesn’t respond, use the other controller. In rare cases it will even switch player 1 and 2 mid game. not that big of a deal though.

also when I need to connect the raspi to wifi (to get updates or if I wanna ssh in from my laptop) I just shutdown the raspi, remove the controllers or the usb drive , replace it with the wireless adapter, then boot up. You can control your raspi via ssh and launch a virtual terminal window as well. I use cyberduck to do this

anyway, I hope this helps somebody