For the GBA emulator use VBA (I use VBA-rr specifically to use the lua scripts here)
To Pal Park the pokemon you need the DS emulator Desmume. Be sure to make backups of both the DS and GBA save before the Pal Park. Also, be sure to check the Pal Park trash bytes at pokecheck with the pokemon in 5th gen format (you can check them in 4th gen format if you Pal Park to D/P/Pt). The 4th gen legal checker doesn't support HG/SS Pal Park trash bytes. Also, sometimes Pokegen drops trash bytes for whatever reason when you save a pokemon as a file. I'm not sure if Pokesav does that too or not.
If you could get a flashcart that would be ideal because you would be able to dump your Ruby save, trade with the Emerald save, and then restore the Ruby save with the traded pokemon.