Instructions
Start the VisualBoy Advanced emulator and press "Ctrl-O" to bring up the Open File browser. Direct the browser to the location of your "Pokemon Ruby/Sapphire/Emerald" game image (ROM) and open it.
Start a game and look for a system message that reads, "The internal battery has run dry. The game can be played." Although the game can be played without the use of the internal battery functions, many in-game events will not function properly without it. Your VBA emulator is already optimized to emulate the battery if the message does not appear. Continue playing the game normally.
Pause the game if the "Internal battery has run dry" message appears. Select "Options" from the menu at the top of the emulator. Select the "Emulator" to bring up another drop-down menu with various options checked. Click the option that reads "Real Time Clock" and a check will appear next to it.
Open the "Options" menu again and under "Emulator" open "Save Type." Check off the settings "Automatic" and "Flash 128k." These two options will configure VBA to enable proper game saves.
Close and reopen VBA. The battery error will not appear again and game saves will be fully enabled.