If you have a link cable, two GBAs and a copy of FireRed / LeafGreen / Emerald, there's this:
Pokémon FireRed, LeafGreen and Emerald Patch
Load FireRed, LeafGreen, or Emerald until the title screen is displayed.
Press the Select and B buttons. After the new screen loads, press A.
Insert the Link Cable so that the system that the FireRed, LeafGreen or Emerald game is connected to the Player 1 cable port and the Ruby or Sapphire game is connected to the Player 2 port. Once this is done, press A.
Turn on the device with Ruby or Sapphire while holding the Start and Select buttons.
Refer to the FireRed, LeafGreen or Emerald game display for further instructions. The patch should be transferred at this time.
Please note that this was simply copy-pasted from Bulbapedia...so sorry if there're any inaccuracies, but it's rare there are. I do know it works as I accidentally activated the screen on LeafGreen, a friend saw it and got me to fix his Ruby game :D
I may not be being helpful, as I haven't a clue how to get a battery, or what sort, however, it also says this on Bulbapedia:
Sending Game in to Nintendo
If the player has no opportunity to download the patch, the game can be sent to Nintendo to have it fixed.