In this tutorial I'll show you how to make an item ball.
Step 1)
Make a new person event in JohtoMap, by going to map properties, events edit, and then increasing the number of people by one.
Step 2)
Edit that person like so:
1. Palette, defines colour. I chose 3 because it's the perfect palette for a chest, which is the item ball in my hack. If you want to be like the original games, use 0.
2. Make it 1 and leave it.
3. 84 is the classic picture for the item ball, if you want to use a different item ball texture, however, it's always recommended to change number 84 in the sprite editor.
4. Make it 1 and leave it.
X. Leave it as is, 0.
?. Leave it as is shown here, but I can't actually be sure why. I think it's got something to do with when it appears, maybe 0xFF 0xFF means 'when flag bit activated, do not show?'
Step 3)
Find out the byte ID for the item, and write it in some free space (OVERWRITING THE FREE SPACE, MAKE SURE YOU DO NOT HAVE INSERT ON!!!) in the map's script bank using a Hex Editor. Since we're not working with Table Files, I'll recommend FrHed. Else use something like WindHex for text.
Step 4)
Right after that byte, use FrHed or whatever to write, as a hexadecimal byte, the number of this item you want to acquire upon opening the ball. No more hex editing after this.
Step 5)
Find the pointer location of the 2 bytes you just wrote in a Game Boy pointer calculator, by inputting your map's script bank (JohtoMap displays it in hexadecimal, and most pointer calculators accept hexadecimal only) in the bank area, and the offset in the offset area. Well, usually you just have to put in the offset but maybe do it this way to be safe.
Step 6)
Enter that pointer location into the Script area in the JohtoMap person editor.
Step 7)
Finally, find a flag in this thread that the almighty Koolboyman (Coolboyman?) created that you care about NOT. Then input the first two octets (hexadecimal digits) in the Flag Index area in JohtoMap, and the last two octets in the Flag Bit area in JohtoMap. Don't worry if JohtoMap truncates any zeroes before that, it'll work still.
And you're done!
Step 1)
Make a new person event in JohtoMap, by going to map properties, events edit, and then increasing the number of people by one.
Step 2)
Edit that person like so:
1. Palette, defines colour. I chose 3 because it's the perfect palette for a chest, which is the item ball in my hack. If you want to be like the original games, use 0.
2. Make it 1 and leave it.
3. 84 is the classic picture for the item ball, if you want to use a different item ball texture, however, it's always recommended to change number 84 in the sprite editor.
4. Make it 1 and leave it.
X. Leave it as is, 0.
?. Leave it as is shown here, but I can't actually be sure why. I think it's got something to do with when it appears, maybe 0xFF 0xFF means 'when flag bit activated, do not show?'
Step 3)
Find out the byte ID for the item, and write it in some free space (OVERWRITING THE FREE SPACE, MAKE SURE YOU DO NOT HAVE INSERT ON!!!) in the map's script bank using a Hex Editor. Since we're not working with Table Files, I'll recommend FrHed. Else use something like WindHex for text.
Step 4)
Right after that byte, use FrHed or whatever to write, as a hexadecimal byte, the number of this item you want to acquire upon opening the ball. No more hex editing after this.
Step 5)
Find the pointer location of the 2 bytes you just wrote in a Game Boy pointer calculator, by inputting your map's script bank (JohtoMap displays it in hexadecimal, and most pointer calculators accept hexadecimal only) in the bank area, and the offset in the offset area. Well, usually you just have to put in the offset but maybe do it this way to be safe.
Step 6)
Enter that pointer location into the Script area in the JohtoMap person editor.
Step 7)
Finally, find a flag in this thread that the almighty Koolboyman (Coolboyman?) created that you care about NOT. Then input the first two octets (hexadecimal digits) in the Flag Index area in JohtoMap, and the last two octets in the Flag Bit area in JohtoMap. Don't worry if JohtoMap truncates any zeroes before that, it'll work still.
And you're done!