"I have to make an evolution like that for each item, like Metal Coat" That's correct.
I don't even change anything, just repoint and extend the tables. So no I cannot have broken it. If you still want to ensure this fire up IDA and the database and check where the evolution routines are called...
- On level up from item (rare candy)
- At the end of every battle
- During a trade
That is it! Trust me it doesn't break XD It only crashes if you write a routine incorrectly and it is called!
You need to asm,script and hex edit stuff to hack the game. ASM is needed to change some codes in the game to change the way it works ie. stop gaining experience etc
scripting is used when manipulating events ie. giving pokemon
hex editing is needed to insert the bin assembled so that you can use the asm you compiled.. hex editing is much simpler than scripting if your just going to do byte changes imo
Yes, you can. But it will be specific to Onix only. THe routine will have to check for Metal Coat and then branch to the level check location after it. That is the routine, if you want it for kings rock, you need to write a brand new evolution method. Possible, just not efficient enough for my liking.
Therefore, all you really need is the tool that transforms the source code into a machine language, and a text editor (An IDE does all of this for you, so you just click a "Run" button and it goes). Transforming programs to an executable format thus really depends on the language and platform you're running. Unix-like operating systems make this really easy - any file is executable with the right permissions. Windows makes the really hard - only .exe files are executable.
I don't really like IDE's as they're not really helpful to me. I use a program called Emacs to do all my programming. Emacs is a programmable tool that can do anything (no really, it can be programmed to do literally anything - plus its a highly advanced and configurable text editor).
So to reiterate: you just need a tool that converts source to some binary format.
I can answer this question in a less philosophical way if you give me specific languages and platforms.
It's definitely possible. Look at shinyquagsire's tools - they're all Java. I don't program in either C# or Java, so I can't really help you learn those. While I do know Java, I learned it by reading a manual so it's probably not much help to you. Also, I really would advise you stay away from C/C++ as your first language - they're notoriously difficult - save those for a 2nd or 3rd language.
Code Academy is apparently good. Just Google "Learn C#" and you'll find tons of good resources. The first step in becoming a programmer is relying on a search engine. As for programs, I don't use an IDE like netbeans, so I can't really recommend anything.