EVERYONE SHOULD BE AWARE THAT USING THIS PROCESS HAS A MODERATE TO HIGH LIKELIHOOD OF CREATING AN ILLEGAL POKEMON. DO NOT TRADE THESE ON OTHER FORUMS OR COMMUNITIES AS LEGAL.
MORE INFORMATION ABOUT THE MENU/ANIMATION AFFECTING THE RNG, READ HERE.
First and foremost, although all of these Jirachi's are "legit" and can be in theory generated and retrieved by the Pokemon Channel game; in actuality lots of them could almost certainly not be redeemed through normal RNG on retail hardware/emulators. There is an entire methodology that goes into determining whether or not a certain Jirachi spread can actually be redeemed through RNG (due to the necessity to hit things are certain frames that would be impossible to interact with on actual hardware), and even if you follow that guide to a tee, sometimes redeeming that specific spread Jirachi will just not be possible. If you want to ensure that the Jirachi you are trying to redeem could actually be retrieved on hardware, there are more in-depth guides here and here. With that said, nothing "illegal" is being created through this process; the Pokemon Channel game can, in theory, produce all of these different spread / shiny Channel Jirachis.
For this process you are going to need:
A developer version of Dolphin Emulator at least 5.0+ and a PAL Copy of the Pokemon Channel
A version of VBA + a western Ruby/Sapphire game that can redeem the Jirachi.
The ability to run this python script
RNG Reporter 10.3.4
(Optional) A list of very good possible Channel Jirachi Spreads
One final note before starting, the majority of the research that was done into figuring this out was done by people with much more knowledge of RNGing Channel Jirachi than I will ever have. So if you want to know most of the logic behind it, I probably cannot help you haha. All I did was figure out how to put this guide together.
First off, we are going to run RNG Reporter 10.3.4 and make sure the Method is set to 'Channel.' Then you are going to choose a desired seed, and the maximum amount of frames you are willing to go up to. For this example, and to keep things simple, I picked a random seed '83213901,' set the frame counter a very small amount (5000). and clicked off the "Shiny Only" box as I want to retrieve a shiny Channel Jirachi.
Now we are going to run the python script linked in the requirements.
I have set the IV and thresh to 0, in order to generate every possible spread between frames 0-5000. This takes longer, and for an actual desired spread you would want to find out what threshold the Jirachi would be at, in order to generate as few results as possible.
Once we've run the python script, you want to find the PID of your desired spread. Make sure that the spread matches, and then copy down the highlighted memory address of your spread. This is the important part!
Next you are going to want to launch Dolphin in developer mode. In order to do that you need to launch dolphin from CMD or command line with the '-d' parameter. At this point you want to setup VBA and make sure that it is ready to connect to Dolphin. Once that is done, launch the Pokemon Channel and proceed through the standard Jirachi redemption process to this screen:
Once on this screen you want to find the Memory location '8033d888' and set the value equal to whatever you address that you copied from the python script. Now you can begin the redemption process:
And retrieve your desired CHANNEL Jirachi!