Eggs in Emerald are generated in two steps: the PID is set when you take a step that creates the egg, and the IVs are set when you pick it up from the daycare man. You'll need to do two RNGs to get a perfect shiny egg.
Video Guide
Getting a Shiny Pokémon
Open the "Pokemon Info" tab in the Lua script to view the IVs and Nature of your parent Pokémon. Write them down for later.
Place both Pokémon in the Daycare. The first parent given to the Daycare is Parent 1, the second is Parent 2. Write this down for later.
Talk to the Daycare Man to check Pokémon compatibility, and input this into the RNG tool below.
Walk inside the Daycare until the Lua script's step counter is 1.
Save the game, restart, and pause after loading the save.
Switch to the Lua script's "Breeding" tab and input the "Calibration", "Initial Seed", "TID", "SID", and "Advances" (as "Initial advances") into the RNG tool. Also, enter the Nature of the non-Ditto or female parent. Optionally, filter for shininess, nature, and gender.
Click "Generate" to get a list of potential PIDs, and choose one to target. If there are no results, increase the "Max Advances."
Unpause your game.
If there are redraws, open the game menu (press Start), then open and close the Pokedex for each redraw.
Pause the game near your target advance, then create a save state.
Manually advance the game (Ctrl + N for Windows, Cmd + N for Mac) until you reach your target advance.
Hold the movement button to make your character walk, then unpause while holding the button. Walk in the same direction your character is facing (e.g., if facing left, hold the Left button).
The egg you receive should have your target PID.
If you missed the target, input the nature in the RNG tool to find the advance you landed on.
Subtract the advance you hit from your target, and enter the difference in the RNG tool's "Delay" field, then regenerate the results and try again.
Congrats! You now have a shiny egg!
Advance
Redraws
PID
Gender
Shiny
Nature
Ability
No data
Getting IVs
Walk outside next to the Daycare man, save the game, then restart.
After loading your save, view your Trainer Card, flip it once, and close the menu.
Talk to the Daycare man until you see the text "Take good care of it." Pause the game and make a save state.
Input the current advance into the "Initial advances" field in the RNG tool.
Enter the IVs of your parent Pokémon into the RNG tool.
Click "Generate" to get a list of possible results, and choose a target advance.
Pause the game near your target advance, then create a save state.
Manually advance the game (Ctrl + N for Windows, Cmd + N for Mac) until you reach the target advance.
Hold "A" and unpause to finish receiving the egg at the target advance.
Use the Lua script's "Pokemon Info" tab to check the received Pokémon's IVs.
If you missed the target, input the IVs in the RNG tool to find the advance you landed on. You might need to change the "Method" field to find a match.
Subtract the advance you hit from your target, and enter the difference in the RNG tool's "Delay" field, then regenerate the results and try again.
Congrats! Your egg now has fantastic IVs!
Advance
HP
Atk
Def
SpA
SpD
Spe
No data
Credits
Thanks to all PokeFinder contributors, whose work this tool is built upon.