I'm not Lord Tom, but I might be able to answer some things.
First of all, the title is somewhat misleading considering your actual question.
First I'm going to address your question in the title.
In short, reaching a state of Arbitrary Code Execution from scratch means:
1. Figuring out what needs to change (what memory addresses, what values, etc.) to effectively give you enough control of the processor to expand the control even further.
It's what our corresponding wiki page is all about.
2. Figuring how to use the in-game mechanics to actually change the things around.
This step looks like what the actual question in the reply is about.
Once you get there, it's only a matter of knowing how to
program to actually create content. The content might be just changing two or three addresses and start the credits, or it might be creating full games. The former is interesting for TASing, the latter is more on the level of ROM hacking and even game development itself. This can be done independently from the other two steps, as you can just use Hex Editors or Cheats to change the according bytes.
Now, advice on your actual problem in the reply.
Of course, in games like Pokemon, the first step has already been established and the second step only requires knowledge of the game itself.
Your best bet is to ask for more game specific advice on how to manipulate the items and all that.
(Hard to give advice without knowing the exact game though)
Of course, you also need actual content if you want to do something other than just display the credits. So go ahead and create your payload. Though this doesn't really have anything to do with TASing.