If you're hacking the third gen, you can use HackMew's Shinyizer as it's pretty simple to get working. Don't forget to read this post to learn how to use it properly.
Just wondering if i could get some further help. I have read the tutorial but have no clue where I should be inserting that code. the shinyizer tool on has a spot for a hex code an nothing else, is there something simple I'm missing here?
There's no one place you must insert the routine, you just need to put it somewhere where there is enough free space. You can use HackMew's free space finder (which you can get from the link I posted earlier in the thread) to quickly find somewhere to insert it. Open up FSF and write the starting offset of your ROM's free space - I don't know R/S/E's offsets off the top of my head, but for FR this is 0x720000. You need 144 bytes of free space but since the tool defaults to searching for 256 bytes you don't need to alter that window. Click the find button and copy the resulting offset that is given to you. Paste it into the Shinizer window and click shinyize. It should now be working in game.
Don't forget to make a backup of your ROM before you start using tools you're unfamiliar with just in case something terrible happens.
But I dont understand what that specifically would do, nowhere in the description do I paste the offset of the specific trainer who's pokemon I am trying to make shiny. I appreciate your patience but i've been super confused, thanks man
#dynamic 0x800000
#org @start
setvar 0x8003 0x0403
trainerbattle 0x0 0x5B 0x0 @before @after
msgbox @later 0x2
release
end
#org @before
= ?
#org @after
= !
#org @later
= [...]
The part that I described in my last post is just setting the groundwork for events in game. Once you insert the routine using the Shinyizer you need to activate it in game via scripting. Open up XSE (or your script editor of choice) and then follow the instructions in HackMew's explanation. Here's an example of a script you can use to make a trainer battle when the trainer has three Pokemon and their first Pokemon is shiny:
Code:#dynamic 0x800000 #org @start setvar 0x8003 0x0403 trainerbattle 0x0 0x5B 0x0 @before @after msgbox @later 0x2 release end #org @before = ? #org @after = ! #org @later = [...]
Here's a table I whipped up to better illustrate the number you need to set the first half of variable 0x8003, indicating which of the trainer's Pokemon you want to be shiny.
![]()
To use it, choose the row that corresponds to how many Pokemon the trainer has. Move from left to right and write down the numbers in the columns that correspond to which spot in the party you want to be shiny. Add up all of the numbers you wrote down and then convert it to hexadecimal. XSE has a nifty calculator that can freely convert between hexadecimal and decimal notation. Following the example in HackMew's tutorial, here's the spaces that I would add up if I wanted a trainer with five Pokemon whose second and third Pokemon were shiny:
![]()
From there I would add 8 and 4, equalling 12. When I convert the number 12 into HEX I am given the number 0xC which is what HackMew came to in the tutorial. Add the trainer's number of Pokemon to the second half of the variable and you should be all good in game.
Thanks for the response, unfortunately, I still cant seem to get it working. Here is my script for youngster Allen on route 102 in Emerald, Im trying to make only his first of 2 pokemon shiny. Not only are the pokemon not shiny, but the trainer battle is now a double battle from latter in the game. Notice anything wrong with it?
Spoiler:
#org 0x1EC1E1
setvar 0x8003 0x202
trainerbattle 0x0 0x14D 0x0 0x8294775 0x82947AA
msgbox 0x82947DB MSG_NORMAL '"I haven't won once yet[.]\nI wish ..."
end
'---------
' Strings
'---------
#org 0x294775
= Did you just become a TRAINER?\nWe're both beginners!
#org 0x2947AA
= I called you because I thought\nI could beat you[.]
#org 0x2947DB
= I haven't won once yet[.]\nI wish I would win soon[.]
#dynamic 0xE3CF64
#freespace 0xFF
#org @start
setvar 0x8003 0x202
trainerbattle 0x0 0x14D 0x0 @before @after
msgbox @later 0x2
end
#org @before
= Did you just become a TRAINER?\nWe're both beginners!
#org @after
= I called you because I thought\nI could beat you[.]
#org @later
= I haven't won once yet[.]\nI wish I would win soon[.]
No idea what I have done wrong here. Followed your script exactly and I have the exact same issues, a double battle from later in the game with no shinies.
Here is the ips file. Just wanted to say regardless of whether or not I ended up getting this fixed, you have been an amazing help and I am grateful for the time you've spent trying to assist me.
Ahhhh that makes sense, thanks a bunch. Yeah was only trying to make that trainers pokemon shiny in a backup to test whether or not I could get it working. One final question I have is; Earlier you linked a post that discussed free space in emerald, without that patch on my rom, will I have limited amounts of free space to use for making changes?