You'll have to program your own script for getting the starters. The original scripts wait for certain pointers to be set, and then they are enabled/disabled, depending on the script. Unless you happen to know every single necessary pointer, programming your own script's the best way to go.
Here's an example script..
So, let's say you want to make Cacnea a starter choice for the player. You would use this script:
Code:
'---------------
#org 0x7AEF00
dynamic 0x800000
checkflag 0x201
if 0x1 goto @sorry
showpokepic 0x158 0xA 0x3
msgbox @ask MSG_YESNO '"Would you like to choose Cacnea?"
compare LASTRESULT 0x1
if 0x1 goto @sure
hidepokepic
msgbox @no MSG_FACE '"You decided to leave the Cacnea."
end
'---------------
#org @sorry
msgbox @cant MSG_FACE '"You've already chosen a Pokémon."
end
'---------------
#org @sure
hidepokepic
hidesprite LASTTALKED
setflag 0x201
setflag 0x205
givepokemon 0x158 0x5 0x0 0x0 0x0 0x0
setflag 0x828
setflag 0x291
msgbox @yes MSG_FACE '"[player] chose Cacnea!"
msgbox @nick MSG_YESNO '"Would you like to give a\nnickname..."
compare LASTRESULT 0x1
if 0x1 call 0x87B12D2
setvar 0x4012 0x1
setvar 0x4014 0x1
release
end
'---------------
#org 0x7B12D2
call 0x81A74EB
return
'---------------
#org 0x1A74EB
fadescreen 0x1
special 0x9E
waitstate
return
'---------
' Strings
'---------
#org @ask
= Would you like to choose Cacnea?
#org @no
= You decided to leave the Cacnea.
#org @cant
= You've already chosen a Pokémon.
#org @yes
= [player] chose Cacnea!
#org @nick
= Would you like to give a\nnickname to Cacnea?
In order for this script to work, you'll have to use XSE and Free Space Finder (FSF)
WARNING: Use FreeSpaceFinder to find free space. After finding free space, remove the "0x800000" line in the script. Instead, put "0x" and after that, the free space pointer that you got from FSF.
Go to Advance Map, and check the Person Event that will trigger this script- probably a Pokéball on the desk. Make sure that the "Person ID" field in Advance Map is set to "0205", so that this script will make the Pokéball disappear forever after the player chooses it. Also, make sure that the "Script" field in Advance Map is set to "7AEF00", so that this script will run when the player interacts with it.
You can duplicate this script and put it into your own offsets that you find in FSF, so that there will be three starters and not just the one Cacnea.
By the way, the "0x201" Flag detects whether or not the player has already chosen a Pokémon, e.g. if the player already chose a Magby, and they try to take Cacnea too, it'll just skip to "You've already chosen a Pokémon." So, whenever the player chooses a starter Pokémon using this script, it will set the Flag "0x201" so that the player will no longer be able to choose another Pokémon.
I've also included the nicknaming sequence, to save you some time 😉
Sorry if I'm not explaining it the best, I haven't really helped too much with ROM Hacking before.