Then let’s see what happens when we change those values during a wild Pokemon encounter. Since we XOR all of these values, an easy way to achieve this may be to set the trainer ID to the personality value because if we XOR the same string, we obtain all 0’s as outputs which would be less than 8 (our shiny threshold).Īdditionally, changing the trainer ID rather than the personality value would be preferable because the personality value influences various internal pokemon stats, such as EVs. Once we extract the personality value and trainer ID, we must manipulate them for our shiny formula to always output shiny Pokemon. These design choices for Endianness are mainly arbitrary, and there does not exist specific advantages for either choice. Different processors may use Big Endian, so you should validate any assumptions on endianness to prevent large-scale errors for any computer memory-related projects. Gameboy Advance uses Little Endian, so that is why we interpret our personality value as 0x30DB5C0B. There are two types of endianness, known as little endian and big endian, which are further explained by the diagram below: This brings us to the concept of Endianness, which refers to the specific order of data bytes for the most significant byte (MSB) and the least significant byte (LSB). It seems logically intuitive to read from left to right as English is read, but there exist human scripts such as Arabic or Hebrew that are read right to left, so these simple decisions do not have automatic standardizations. When we have multiple bytes in memory, however, we must choose what order to read the bytes. Imagine trying to ROM hack with a series of bits - that’d be painful!Įach pair of hexadecimal digits refer to one byte in memory. Computers only understand 0s and 1s, which we can translate into hexadecimal values for a more human-friendly view, as shown in Figure 4. We must understand computer memory to understand this difference in byte order. The personality value, for example, is NOT 0x0B5CD830 - rather, the personality value would be 0x30DB5C0B. You need to be very careful when you interpret multi-byte memory.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |