Behaviour if you pick a non-existing fourth starter using a cheat code (Ruby/Sapphire/Emerald)
Notes: In Ruby, the cursor address is at 03004b28 , so you can try 03004b28:03 to see ?????????? (00), though using it before picking a Pokémon will lock the game up after showing the sprite. However, you can enable that code after choosing a normal Pokémon but not confirming to get it.
After the battle with Poocheyena/Zigzagoon, we can battle using the Decamark (which will have a starter's moveset) and the Pokémon may run away if we don't take it out.
In Emerald, the address may be random due to DMA (?) but you can use a cheat searcher to search for 00 on the leftmost starter, 01 on the middle starter then 02 on the rightmost starter. In case there's no randomisation it was 03005e08.
After talking to the rival, the battle never starts and they will repeat their text. You can walk around even while their text box is still open, and it's probably impossible to progress without further hacking/cheats.
The party is glitched and is full of many other glitch Pokémon. Scrolling or messing around with them can freeze the game. Interestingly I wasn't able to do Glitzer Popping in Emerald with it.
In FireRed/LeafGreen the menu isn't the same and so far I haven't been able to get a code like Ruby/Sapphire/Emerald but I'll look into it later.