Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
How can you find flag and variable offsets that aren't used yet? The offsets from free space finder can't be used for these, and i don't want to end up using a flag/variable that is being used by the game somewhere... I'm putting a lot of time in this hack, so i don't want to end up with a broken rom cos i've altered wrong values.
Does anybody know? Or is there a tool available that finds unused values for these?
How can you find flag and variable offsets that aren't used yet? The offsets from free space finder can't be used for these, and i don't want to end up using a flag/variable that is being used by the game somewhere... I'm putting a lot of time in this hack, so i don't want to end up with a broken rom cos i've altered wrong values.
Does anybody know? Or is there a tool available that finds unused values for these?
I think there's something else wrong with my script, either that, or I've forgotten how to compile it properly.
I searched FSF for a (most likely massively large) 30,000 byte offset. (71AB8E)
I then replaced the offset in my code with it, just to make sure I had enough, because I have no idea how to tell exactly how much I need. :(
Anyway, then I click compile, and copy the offset "start".
I paste it as the MOM character's offset, (So that it says $71AB8F) save the changes to the ROM in A-Map.
I open the ROM to test, and when I talk to MOM, she looks at me, but says nothing. Then, when I press A again, she does nothing, then repeats the cycle.
It's probably something wrong with my script, maybe if someone's not too busy, could they please try my script out on the MOM character?
Sorry for pretty much hijacking this page... I think... :paranoid:
Also, @Nightcrow:
I'm not exactly sure, since I'm kinda new at this and all, but I'm pretty sure there was a list of flags used in the games in Diegoisawesome's tutorial... Or you could just follow the post right above me. :P
YOU NEED AT LEAST 15 POSTS TO POST A LINK TO ANOTHER SITE.
Wait, wha? It's the same site... :laugh:
I noticed that in your post, you mentioned two different addresses: '0x71A8BE' and '0x71A8BF'. You need to copy whatever address is displayed in the box that pops up when you press compile into the box in AdvanceMap. If there's any difference between the two, you will most likely run into problems.
I never really understand it when people explain it...
I take the offset from FSF, and paste it in the script at "#dynamic @start 0x######", then when I click compile, which brings up the window with a bunch of offsets in it.
Which one do I copy? In the bottom box, there's a start offset, which is one digit different, or is it one of the ones that appear in the main window?
I tried again, with the start offset as 0x71B17C, and I pressed compile, and this is what it says in the window...
Spoiler:
1 - DYNAMIC
> lDynamicStart = 0x71B17C
3 - ORG
> lNewOffset = 0x71B17D
4 - (6A) - LOCK
5 - (5A) - FACEPLAYER
6 - (2B) - CHECKFLAG
> iWord = 0x100
7 - (??) IF (native)
> bCondition = 0x1
This is a jumping IF, 0x06.
> pTarget = 0x871B191
8 - (0F) MSGBOX (native)
> pText = 0x871B1ED
9 - (6C) - RELEASE
10 - (02) - END
12 - ORG
> lNewOffset = 0x71B191
13 - (2B) - CHECKFLAG
> iWord = 0x101
14 - (??) IF (native)
> bCondition = 0x1
This is a jumping IF, 0x06.
> pTarget = 0x871B1B2
15 - (0F) MSGBOX (native)
> pText = 0x871B241
16 - (--) GIVEITEM
> iItem = 0x15D
> iQuantity = 0x1
> bType = 0x0
17 - (29) - SETFLAG
> iWord = 0x101
18 - (6C) - RELEASE
19 - (02) - END
21 - ORG
> lNewOffset = 0x71B1B2
22 - (2B) - CHECKFLAG
> iWord = 0x102
23 - (??) IF (native)
> bCondition = 0x1
This is a jumping IF, 0x06.
> pTarget = 0x871B1C4
24 - (0F) MSGBOX (native)
> pText = 0x871B355
25 - (6C) - RELEASE
26 - (02) - END
28 - ORG
> lNewOffset = 0x71B1C4
29 - (2B) - CHECKFLAG
> iWord = 0x103
30 - (??) IF (native)
> bCondition = 0x1
This is a jumping IF, 0x06.
> pTarget = 0x871B1E4
31 - (0F) MSGBOX (native)
> pText = 0x871B3A0
32 - (31) - FANFARE
> iWord = 0x13E
33 - (0F) MSGBOX (native)
> pText = 0x871B44D
34 - (32) - WAITFANFARE
35 - (68) - CLOSEONKEYPRESS
36 - (29) - SETFLAG
> iWord = 0x82F
37 - (6C) - RELEASE
38 - (02) - END
40 - ORG
> lNewOffset = 0x71B1E4
41 - (0F) MSGBOX (native)
> pText = 0x871B407
42 - (6C) - RELEASE
43 - (02) - END
45 - ORG
> lNewOffset = 0x71B1ED
46 - RAW TEXT
> sText = "Hey, [PLAYER], [RIVAL] wanted to\nsee you!\lHe said he had something to give\lyou."
48 - ORG
> lNewOffset = 0x71B241
49 - RAW TEXT
> sText = "Oh, hi [PLAYER]!\pAww! A POK\h1BMON!\pI guess this means you want to run\noff, and take the POK\h1BMON LEAGUE\lchallenge...\p...\p...\p...Alright. I'll allow you to go, but\nonly if you go give this PARCEL to\lmy friend. She lives in the next\ltown over.\pI'll see you soon!"
51 - ORG
> lNewOffset = 0x71B355
52 - RAW TEXT
> sText = "My friend MRS. RAZ lives in the\nhouse beside the STRYKE POK\h1bMON\lLAB."
54 - ORG
> lNewOffset = 0x71B3A0
55 - RAW TEXT
> sText = "Thank you!\pFine, you may try the POK\h1bMON\nLEAGUE challenge...\pBut I think you should have these."
57 - ORG
> lNewOffset = 0x71B407
58 - RAW TEXT
> sText = "Sorry, there's not really much I\ncan do to help you, but good luck!"
60 - ORG
> lNewOffset = 0x71B44D
61 - RAW TEXT
> sText = "[black_fr] You received RUNNING SHOES!"
-------------------------------
DYNAMIC_OFFSET 1
> sLabel = @1
> lOffset = 0x71B1ED
DYNAMIC_OFFSET 2
> sLabel = @2
> lOffset = 0x71B241
DYNAMIC_OFFSET 3
> sLabel = @3
> lOffset = 0x71B355
DYNAMIC_OFFSET 4
> sLabel = @4
> lOffset = 0x71B3A0
DYNAMIC_OFFSET 5
> sLabel = @5
> lOffset = 0x71B407
DYNAMIC_OFFSET 6
> sLabel = @6
> lOffset = 0x71B44D
DYNAMIC_OFFSET 7
> sLabel = @goaway
> lOffset = 0x71B1B2
DYNAMIC_OFFSET 8
> sLabel = @goodluck
> lOffset = 0x71B1E4
DYNAMIC_OFFSET 9
> sLabel = @hey
> lOffset = 0x71B191
DYNAMIC_OFFSET 10
> sLabel = @kthxbai
> lOffset = 0x71B1C4
DYNAMIC_OFFSET 11
> sLabel = @start
> lOffset = 0x71B17D
Again, sorry for my stupidity when it comes to this. :p
Sorry to bother you all with yet another question... I must seem such a noob :D
How do you make a moved character retain his spot when you make the screen reload? I have a welcomecharacter blocking you way downstairs from your room. He gives you some small info about the rom and then he steps out of your way. Now when i go downstairs and upstairs again, my sprite is located on top of the other sprite(cos it is blocking the stairs again). And when i step into the room i'm trapped because the welcome text happens only once(flagged).
So is there a command to keep a sprite at his new spot when the screen is reloaded?
Sorry to bother you all with yet another question... I must seem such a noob :D
How do you make a moved character retain his spot when you make the screen reload? I have a welcome character blocking you way downstairs from your room. He gives you some small info about the rom and then he steps out of your way. Now when i go downstairs and upstairs again, my sprite is located on top of the other sprite(cos it is blocking the stairs again). And when i step into the room i'm trapped because the welcome text happens only once(flagged).
So is there a command to keep a sprite at his new spot when the screen is reloaded?
It's been a while since I scripted, but I think the command you're looking for is movesprite2. It moves the specified NPC to a certain location, and permanently make him stay there.
If you don't want him to block your way again, as in be removed completely from the map, you need to make him disappear using flags/variables and movement commands.
I might be wrong there, so please someone answer his question properly if I am not right. I forgot most XSE scripting commands after many, many C++ lessons.
I never really understand it when people explain it...
I take the offset from FSF, and paste it in the script at "#dynamic @start 0x######", then when I click compile, which brings up the window with a bunch of offsets in it.
Which one do I copy? In the bottom box, there's a start offset, which is one digit different, or is it one of the ones that appear in the main window?
I tried again, with the start offset as 0x71B17C, and I pressed compile, and this is what it says in the window...
Spoiler:
1 - DYNAMIC
> lDynamicStart = 0x71B17C
3 - ORG
> lNewOffset = 0x71B17D
4 - (6A) - LOCK
5 - (5A) - FACEPLAYER
6 - (2B) - CHECKFLAG
> iWord = 0x100
7 - (??) IF (native)
> bCondition = 0x1
This is a jumping IF, 0x06.
> pTarget = 0x871B191
8 - (0F) MSGBOX (native)
> pText = 0x871B1ED
9 - (6C) - RELEASE
10 - (02) - END
12 - ORG
> lNewOffset = 0x71B191
13 - (2B) - CHECKFLAG
> iWord = 0x101
14 - (??) IF (native)
> bCondition = 0x1
This is a jumping IF, 0x06.
> pTarget = 0x871B1B2
15 - (0F) MSGBOX (native)
> pText = 0x871B241
16 - (--) GIVEITEM
> iItem = 0x15D
> iQuantity = 0x1
> bType = 0x0
17 - (29) - SETFLAG
> iWord = 0x101
18 - (6C) - RELEASE
19 - (02) - END
21 - ORG
> lNewOffset = 0x71B1B2
22 - (2B) - CHECKFLAG
> iWord = 0x102
23 - (??) IF (native)
> bCondition = 0x1
This is a jumping IF, 0x06.
> pTarget = 0x871B1C4
24 - (0F) MSGBOX (native)
> pText = 0x871B355
25 - (6C) - RELEASE
26 - (02) - END
28 - ORG
> lNewOffset = 0x71B1C4
29 - (2B) - CHECKFLAG
> iWord = 0x103
30 - (??) IF (native)
> bCondition = 0x1
This is a jumping IF, 0x06.
> pTarget = 0x871B1E4
31 - (0F) MSGBOX (native)
> pText = 0x871B3A0
32 - (31) - FANFARE
> iWord = 0x13E
33 - (0F) MSGBOX (native)
> pText = 0x871B44D
34 - (32) - WAITFANFARE
35 - (68) - CLOSEONKEYPRESS
36 - (29) - SETFLAG
> iWord = 0x82F
37 - (6C) - RELEASE
38 - (02) - END
40 - ORG
> lNewOffset = 0x71B1E4
41 - (0F) MSGBOX (native)
> pText = 0x871B407
42 - (6C) - RELEASE
43 - (02) - END
45 - ORG
> lNewOffset = 0x71B1ED
46 - RAW TEXT
> sText = "Hey, [PLAYER], [RIVAL] wanted to\nsee you!\lHe said he had something to give\lyou."
48 - ORG
> lNewOffset = 0x71B241
49 - RAW TEXT
> sText = "Oh, hi [PLAYER]!\pAww! A POK\h1BMON!\pI guess this means you want to run\noff, and take the POK\h1BMON LEAGUE\lchallenge...\p...\p...\p...Alright. I'll allow you to go, but\nonly if you go give this PARCEL to\lmy friend. She lives in the next\ltown over.\pI'll see you soon!"
51 - ORG
> lNewOffset = 0x71B355
52 - RAW TEXT
> sText = "My friend MRS. RAZ lives in the\nhouse beside the STRYKE POK\h1bMON\lLAB."
54 - ORG
> lNewOffset = 0x71B3A0
55 - RAW TEXT
> sText = "Thank you!\pFine, you may try the POK\h1bMON\nLEAGUE challenge...\pBut I think you should have these."
57 - ORG
> lNewOffset = 0x71B407
58 - RAW TEXT
> sText = "Sorry, there's not really much I\ncan do to help you, but good luck!"
60 - ORG
> lNewOffset = 0x71B44D
61 - RAW TEXT
> sText = "[black_fr] You received RUNNING SHOES!"
-------------------------------
DYNAMIC_OFFSET 1
> sLabel = @1
> lOffset = 0x71B1ED
DYNAMIC_OFFSET 2
> sLabel = @2
> lOffset = 0x71B241
DYNAMIC_OFFSET 3
> sLabel = @3
> lOffset = 0x71B355
DYNAMIC_OFFSET 4
> sLabel = @4
> lOffset = 0x71B3A0
DYNAMIC_OFFSET 5
> sLabel = @5
> lOffset = 0x71B407
DYNAMIC_OFFSET 6
> sLabel = @6
> lOffset = 0x71B44D
DYNAMIC_OFFSET 7
> sLabel = @goaway
> lOffset = 0x71B1B2
DYNAMIC_OFFSET 8
> sLabel = @goodluck
> lOffset = 0x71B1E4
DYNAMIC_OFFSET 9
> sLabel = @hey
> lOffset = 0x71B191
DYNAMIC_OFFSET 10
> sLabel = @kthxbai
> lOffset = 0x71B1C4
DYNAMIC_OFFSET 11
> sLabel = @start
> lOffset = 0x71B17D
Again, sorry for my stupidity when it comes to this. :p
You should copy the address of whatever script segment (e.g., "@start" or "@hey") you want to run first. In most cases, you'll want to use "@start" and, as far as I can tell, that's the one you should use in this situation too. So I guess you should try putting "71B17C" in the "Script Offset" box in AdvanceMap. If that doesn't work, I would try changing the #dynamic address to '0x800000' and then try compiling again. If that doesn't work, I can't help you and can only advise you to read a scripting tutorial.
Sorry to bother you all with yet another question... I must seem such a noob :D
How do you make a moved character retain his spot when you make the screen reload? I have a welcomecharacter blocking you way downstairs from your room. He gives you some small info about the rom and then he steps out of your way. Now when i go downstairs and upstairs again, my sprite is located on top of the other sprite(cos it is blocking the stairs again). And when i step into the room i'm trapped because the welcome text happens only once(flagged).
So is there a command to keep a sprite at his new spot when the screen is reloaded?
Depending on where you stand when you talk to him(front or right), he runs to a location(applymovement) on the map(coordinates 6,6). And the goal is to keep him there when i enter that map the next time. Applymovement works so 0x1 is the correct person #. And 0x6 0x6 are the coordinates where he should stay. Yet when i enter the map again, he is at coordinates 1,10 where he started.
Depending on where you stand when you talk to him(front or right), he runs to a location(applymovement) on the map(coordinates 6,6). And the goal is to keep him there when i enter that map the next time. Applymovement works so 0x1 is the correct person #. And 0x6 0x6 are the coordinates where he should stay. Yet when i enter the map again, he is at coordinates 1,10 where he started.
So I'm looking to have a battle that allows losing like in the beginning against the rival in leaf green. I know there are types of battles such as 0x3, 0x9 etc... but in pksvui how do I get it to not send me to a pokecenter after losing. If i just knew where the code for that first battle was hidden I could do it myself.
Actually, you don't need to have knowledge of ASM to use HackMew's Shinyzer. I believe that all you have to do (after inserting the code) is to set a variable to a certain value depending on how many pokémon you want to be shiny. Here's a tutorial on how to use it.