hey I saw your message on anthroyd's page and decided to tackle this one in his stead.
So if you have advance map and already added xse to the program, all you'll need to do is go to the pallet map,
on the event page press ctrl z to show sprites if you need to.
Oak's sprite is hidden by a flag, but with sprites shown you can see where his movement starts from on the map.
Step 1. Drag his sprite to where you want him to show up, once you make him visible. Then in the movement type tab if you change him to "Look down" he'll rotate to face forward.
Step 2. The two horizontal green "S" tiles at the top are what trigger the event, each has the same script, and to get this done you'll need to make the appropriate changes to each of them. But for now, just pick one of them and open the script for it. (The only way the scripts are different are their position, so the movement oak has to take to reach them is slightly different.)
Step 3. Ok now the script is based on where oak started before we moved him, and he has a set movement pattern based on which of the event tiles "The green S ones" that you step on. All we need to change are the movements he makes.
If you have a save from back then (or just stat a new game) start your game and go ahead and step on each of those tiles we see in advance map, to get a feel for how the movement script works.
You'll need to delete the the values for the movement script already written there, and replace them with ones that match-up with Oak's new location.
Think of it like this, the original script has oak come up and stand behind the player, from where oak is now, how does he have to move, and how many steps, to be standing directly behind the the green "S" tile we're working on?
It's also a good idea to turn on "Grid view" (Ctrl g), once you do that you can see that each step is on of those tiles.
So look at where he's placed and just count it out, simple enough.
Step 4. I placed my oak in front of the tree to the left of the entrance, so to reach my character he needs to walk right and then turn up.
Now because I don't know what the command is to make him turn without walking, I'm going to do all my direction changes with the movement command, and to be cautious of to not make him collide with me, I'm going to have him step down, then right, and then up, to have him behind me, but not try to walk into me.
So in the above block you can see all the commands you'd need to make a character move.
Open a new tab in xse this should have blank page without an offset.
Now look at your grid and paste the above commands into each line of your blank xse script.
In the order that your Oak needs to take to be facing in front of the top script tile you have selected.
Place the waitmovement command on the next line
Finally on the line after that type return.
Click file Save as, name MyMoveScript without any spaces and put it some place you can find.
Step 5. Phew this is a lot, ok go back to your main tab, with the original game script on it. Save as, name that OriginalOakScript and save that in the same place as your script.
Step 6. Go back to advance map click on the magnifying glass icon to open free space finder, you don't need to change anything just press ok, double click on the first offset that comes up, that should make it pop into the bottom window.
Click specify to allow you to click in that window, double click the number this should select everything but the $ press ctrl c to copy it.
Double click the script offset box in advance map, again to select all the numbers excepting the $, press ctrl v to paste in the offset you copied. And click Open Script.
Step 7. Press enter to go down to line 3.
Now press file open, and open that OriginalOakScript this will open the copy of the original script in a new tab.
Press Ctrl A and then Ctrl C to select and then copy the whole script, go back to your first tab of blank script and paste this it all there with ctrl v. (The point is to paste the script onto the first blank line after your offset)
Then save as MyOakScript. this was to give your script its own offset, think of it as a home address for the rom to find and identify it by. You couldn't make a change using the one that already existed as it was full, the original script already "lived" there.
Step 8. Repeat step 6 and 7, but using the MyMoveScript. Take care to make sure the addresses(offsets) are different for your "My" scripts as these are the ones you'll actually put into the game.
Step 9 (The final step!!). Ok open MyOakScript and then open MyMoveScript.
Go into MyMoveScript first, this one is complete and you don't need to make any more changes to it, ok in the offset window in the top right corner you should see the offset number same as the one you should have around line 1 of this script, double click and copy that number.
Next go back to MyOakScript at about line 27 where it says
select that offset (the part after call 0x8) and paste in the offset for your script.
It should now say call 0x8(the offset number of your MyMoveScript)
now go to line 25 where it says showsprite 0x3 select that text then press ctrl x to cut it out. then press delete to close the space.
Open a new tab and paste that there for now.
Press file save the script, press the showlog button, if it isn't outlined already.
Press debug, the button to the left of showlog, press close if you got no errors notifications.
Press Compile, the button to the left of debug. Copy the offset number in the top right corner of MyOakScript
in advance map in the Script Offset box paste that value in after the first 2 0's.
Should say $00(your offset here)
Now double click to select all the numbers excluding the $, press ctrl c to copy it.
Select the green S event tile beside the one you just finished editing, you don't need to open script again just paste the offset you copied into script offset box. If you did it right, both events should have the same value in the script offset window.
Ok back in advance map click on the Purple W tile over the door to your player's house, then select go to.
It should warp you to the inside of your house, now click on the mom, open her script here repeat steps 5-7.
We save as her script with a new name "Momscript", find a new free space paste that into script offset for the mom event open momscript, paste it all into line 3 on the blank tab and save.
Finally go back to the tab where you pasted showsprite 0x3
select and copy it, go back to mom script down to line 15 where it says "release" press enter to move that code down to line 16, and paste showsprite 0x3 onto line 15. and THAT should do it.
save debug compile and make sure the offset in the corner of xse matches the offset listed in advance maps script offset box.
In Advance map click file save as (never save) select a place different from the rom you loaded advance map with, so it doesn't overwrite the original. Then boot up your emulator make sure you load this new rom (don't change the rom name) and not the old one you didn't change. On a new game talking with your mom first then walk up the path and oak should be there and stop you as normal.
Now that was a helluva lot to write out but in practice once you know what you're doing and get practice the process is actually very quick and easy. If you look through it, all that was really needed was to change or add 2 lines of script.
The first was to adjust professor oak's movement script to his new location, and the second is to make oak visible at the start when you try to leave town.
That's it, ok I just realized I forgot a step but I don't want to go back and edit at this point, but look the first script you wrote to adjust oak's movement was all in relation to the first green S tile you had selected.
You need to make a second movement script to work for the other tile. Not a major change, its literally just putting in another "step right" command before the last "step up" if you did it the same as I did mine. So just make another copy of MyMoveScript put in the other step right command after the the last one before step up, and you're done.
Saveas (never SAVE) MyMoveScript2 or something more different, anyway find a new free space and copy paste that script into it,
save it. Then make another new free offset copy it, select the green S event tile on the top right, and paste the offset you just made into that, open script and open MyOakScript and paste the offset for for the second movement script onto line 27, like you did for the first one.
Because we can't reuse addresses like I said earlier you had to make news one for the same script to occupy
Save debug compile and done.
For real this time.
Ok I wish I didn't make that mistake but it still works to illustrate how quick and simple the process can be and I think once you get to this last portion at the bottom you'll have a much better time of it.
I've followed along in advance map, but my game is already passed that point so I couldn't check it myself. If there is any issue hopefully with this guide you'll understand enough to be able to fix anything yourself.
If Oak doesn't appear after talking with your mom, (try not to do it more than once before going outside that may turn it off)
Oh and if you had your game on this whole time, and you didn't follow what I said and saved to the same rom you were playing, you'll need press reset from your emulator menu for any changes to take place.
Good luck.
p.s. I'm REALLY sorry this ended up needing to be so long.