Shiny Pokémon Script Tutorial





The interactive transcript could not be loaded.



Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
Published on Jan 1, 2012

THIS VIDEO IS OUTDATED AND IS CURRENTLY BEING UPDATED! HOWEVER IF YOU ARE HAVING ISSUES WITH THIS TUTORIAL, THE OFFSET YOU PUT INTO SHINYZER ***MUST*** END IN: 0, 4, 8, or C. For example: 0x74500C, 0x800004, and 0xF14AC8 are acceptable offsets, but 0x901EF2 is not. It will ABSOLUTELY NOT WORK if you do not do this. Remember, when you add "one" to the offset in the script for callasm, that is adding 0x1 (one in hex). So offsets ending in 0 become 1, 4 becomes 5, 8 becomes 9, and C becomes D.


Binary to Hex converter:

(Read the Introduction to ASM before reading this):
The reason for adding 1 to the ASM offset is simple. That +1 is needed by the ROM to correctly run the THUMB instruction set. Otherwise, the ROM will believe that the ASM is ARM and will not function properly (and freeze your game). The routine assembled by Shinyzer is THUMB, not ARM, by the way.
The ASM behind Shinyzer:

Introduction to ASM:
"How many times have you ever heard the word "ASM"? No matter how many, what's behind that mysterious acronym? ASM stands for assembly, which is a low-level programming language. Generally speaking, programming languages can be splitted into 4 main categories. At the lowest level we have machine code: raw (binary) numbers that the CPU decodes into instructions to execute. On the higher level we have assembly. Each assembly instruction corresponds to one machine code instruction. In fact there's a 1:1 relationship between machine code and assembly. Human beings aren't made to program in machine code, where all you have is a long series of binary numbers. That's why assembly programming was created: to let programmers interact with the CPU at the lowest level yet using an easily understandable code. One step up are compiled languages like C, which use structured language element to be more like English, but need to be compiled to machine code in order to be able to run. Finally, there are scripted languages like VB or Java which are run through interpreters designed to run the right kinds of machine code to get the desired effects.

When dealing with ASM, we're basically programming. Therefore we need to know how a processor actually works and write code it can understand. Being a programmer already will sure help here because the main concepts are the same. We talked about ASM in general, but from now on we will refer to the GBA. The GBA itself has a custom processor created by Nintendo, called ARM7TDMI. The CPU has 2 instruction sets: ARM and THUMB.
For our purposes we're going to use THUMB 99.9% of the times. THUMB takes less space into ROM (half the size compared to ARM) and it's executed a lot faster when located in the ROM. There are some cons, indeed. Nothing we should care about now, though."





  • Category

  • License

    • Standard YouTube License


When autoplay is enabled, a suggested video will automatically play next.

Up next

to add this to Watch Later

Add to

Loading playlists...