Based on FractalFusion's extremely thorough writeup and help from Mothrayas I've been able to work out what we need to do. Except it seems neigh impossible to do at the moment with Pokemon Red. Here's the issue:
In the exploit for Yellow, the rival was named (space) (female) (PK) (END). Memory in D343 at that point is:
D343: 00 00 00 00 30 00 7F F5 E1 50 00
In Pokemon R/G/B/Y, items are stored with an identifier followed by their quantity (
Pokered has extensive information about the layout of RAM but I find the less accurate but still useful
Datacrystal RAM layout page to be a bit more accessible for this bit of information). To make a long story short, you can toss quantities of items to change their value in RAM but you can't change the identifier. In this case, the value that matters the most is that F5, which happens to be the female symbol that was used for the rival's name and is aligned as an item identifier which can't be altered through tossing items. In Pokemon Yellow, that F5 is used to point at the address where controller input resides, but in Pokemon Red those values are shifted and we need to have it point to F8 instead.
Now, we could just change the name, but the problem is that the character that is stored as F8 in memory is the number 2, and numbers are not selectable as names. This means we have to alter the value some other way, likely by swapping Pokemon around. Having said that, I have not yet found a way to swap Pokemon in a way that does not cause utter destruction in other areas of RAM that need to stay intact. The path forward is still very unclear to me.
I've spent substantial time on Pokemon Red. Ilari has spent substantial time on the new lsnes + Gambatte core. The new core is more accurate, but Pokemon Yellow has some strange characteristics that cause it not to start and we have not yet been able to determine why. To abandon Pokemon Red *and* the Gambatte core seems like an affront, and there is no guarantee that even with extremely conservative button presses that Pokemon Yellow in the older, far less accurate bsnes core will synchronize on a console (whereas I have Pokemon Red working on real hardware right now). To that end, I'd really like to figure out a way to make Pokemon Red work, but it may take a lot more work to find a new solution as the copy-and-paste from Yellow falls through in the one important memory value we need to change.
Without the help of people like padz, Ilari, Mothrays, Nach, true, p4plus2, micro500, and others I'm positive I wouldn't have been able to get this far. Things may be looking a bit rough with the Family Feud TAS not wanting to synchronize and the arbitrary exploit TAS still not yet working right but I know we'll pull through one way or another. Thanks to everyone who has helped out!