PDA

View Full Version : [Tutorial] A Beginner's Guide to Shiny Hacking


The Void
January 7th, 2012, 10:15 PM
Hey guys!
This tutorial will teach you everything you know about Shiny Hacking. If you want to make some sort of epic event that gives you a Shiny Pokemon for your hack (or if you just want to learn it), then this tutorial is for you. I'm trying to make this tutorial as beginner-friendly as possible and I hope everyone reading this would understand this tutorial :)

Someone has already made this tutorial somewhere before but the thread died out so I decided to make another one but this time more beginner-friendly. But if you are a newbie, please make sure to learn how to use AdvanceMap and PKSV first, since there are many tutorials here explaining how to use it.

Below is a video demonstrating the miraculous works of this hack.

lGo81t0D-XQ

Now to get started...

Programs/files needed:

Shiny Hack Maker
PKSV
AdvanceMap
Any of the following supported ROMs: BPRE FireRed (USA) - AVXE Ruby (USA) - BPEE Emerald (USA)
Your emulator


You may download PKSV here (http://sourceforge.net/projects/pk-script-view/) and AdvanceMap here (http://www.pokecommunity.com/showthread.php?t=127348). Oh, and Shiny Hack Maker here (http://www.megaupload.com/?d=DKN2BWU9) (credits to HackLars for making the tool :)).

Getting Started:
Alright, so to get started, first open up Shiny Hack Maker then go to File>Open ROM. The ROM should read and clarify what kind of ROM you just opened. Now click "Edit Shiny Routine."

Now that the shiny routine has been edited, you may now make your script. For the scripting part, you'll need the callasm command and if you don't know how to make one or are too lazy to make one yourself, then too bad for you you can always follow the script pattern I made for you below. Note that the ones in open and close parenthesis are the ones you need to fill in.

#dyn 0x740000
#org @main
callasm 0x71B771
checkflag 0x(insert flag number here)
if true jump @done
addpokemon (insert Pokemon here) (insert level here) (insert held item here) 0 0 0
message @take
callstd MSG_NORMAL
callasm 0x71B771
setflag 0x828
setflag 0x(insert flag number here)
release
end

#org @done
message @hi
callstd MSG_NORMAL 
release
end

#org @take
= (insert message here)

#org @hi
= (insert message here)

Note: DON'T CHANGE THE CALLASM COMMAND UNLESS YOU HAVE AT LEAST SOME KNOWLEDGE OF ASM!!!

You can copy paste that to notepad and then "fill in the blanks" from there. Here's a finished script I made:

#dyn 0x740000
#org @main
callasm 0x71B771
checkflag 0x200
if true jump @done
addpokemon CHARMANDER 5 NONE 0 0 0
message @take
callstd MSG_NORMAL
callasm 0x71B771
setflag 0x828
setflag 0x200
release
end

#org @done
message @hi
callstd MSG_NORMAL 
release
end

#org @take
= dragon456: So you're here.\nWell, well, nice work.\pAs a reward, I give you this.\nIt's a rare Pokemon I found.\pRaise it well.

#org @hi
= So how's CHARMANDER doing?

Now go to ROM>>Compile and then copy the offset to your clipboard.

After that's done, open up AdvanceMap. Now create the person event, then paste your offset and VOILA!!! You have a Shiny Script Event :)

And that's all for now :)

Thanks for wasting spending your time on this tutorial. I plan to update this post soon and create an XSE tutorial as well once I learn XSE basics and stuff.

If you have any questions, feel free to ask me anytime :)

zZJoennZz
January 11th, 2012, 04:31 PM
There's XSE and I think many hackers uses it compare to PKSV but still, thanks for the tutorial.

N!elz
January 15th, 2012, 07:45 AM
What's changing if you changed the shiny routine? Is there a bigger chance now for encountering shinies? Or is it that you can "force" to make Shiny events?

The Void
January 15th, 2012, 07:51 AM
What's changing if you changed the shiny routine? Is there a bigger chance now for encountering shinies? Or is it that you can "force" to make Shiny events?

It alters the shiny routine for our specified 'callasm' script to match with the new routine. So in a way, it 'forces' the game to make shiny events, yes. :)

N!elz
January 15th, 2012, 11:46 AM
It alters the shiny routine for our specified 'callasm' script to match with the new routine. So in a way, it 'forces' the game to make shiny events, yes. :)
Okay! Thanks for the answer :) I'll be using this one in my hack I think!

Oh, and by the way, if I wanted to make it a battle against a ''forced'' shiny, can I use that same "callasm" script but place it in a battle script, or doesn't it work that way? (you don't have to give explanation if you don't feel like it)

The Void
January 15th, 2012, 11:17 PM
Okay! Thanks for the answer :) I'll be using this one in my hack I think!

Oh, and by the way, if I wanted to make it a battle against a ''forced'' shiny, can I use that same "callasm" script but place it in a battle script, or doesn't it work that way? (you don't have to give explanation if you don't feel like it)

Yes, it works exactly the same way, but you'll need a different script, I guess. You'll still be using the same 'callasm' command, though. :)

N!elz
January 16th, 2012, 12:49 PM
Yes, it works exactly the same way, but you'll need a different script, I guess. You'll still be using the same 'callasm' command, though. :)

Thanks for the answers, I really appreciate that! :) I just wrote my first working scripts today! A plain message script, a give Pokémon script and edited a PokéMart script to my needs. And I also want to thank you for being responsible for a part of my understanding for scripting!

war rock exe
January 16th, 2012, 02:15 PM
This is great!!! I can't wait for the XSE tutorial (because that's the one i use, i no longer use pokesav) Once again this is a great :)

RPD490
August 6th, 2012, 05:31 PM
Okay so this is the only way I can force a Pokemon in like another Trainer's party? Like Im making a optional Trainer battle and he has a Celebi that is suppose to be shiny while the other Pokemon are normal. How would I go and just add Celebi into being a shiny?