Most of this research was done by wwwwwwzx in 2018: https://x.com/wwwwwwzx/status/979949167224045568
Since most of this was already done, I used the XY radar as an introduction to debugging 3DS games. I won't be providing much info on how to play the game because I literally haven't done anything in-game besides look at the Poké Radar the moment my cartridge arrived. Huge thanks to SirToastyToes for helping me understand this part of the game!
I was able to solve the unknown condition that causes 4% upbeat music rate--it's the player's birthday!
We found some methods to force it to be your birthday ingame:
- The birth date that matters is in the 3DS bio, not the one attached to the NNID. You can change this birth date without penalty.
- You can change your 3DS clock to the day before the birthday at 11:59 PM, boot the game, wait for midnight to roll over, and check in a Pokémon Center if your birthday is now active. This will trigger a time travel penalty, which locks you out of other daily events.
- You can change your bio birth date to the day after and wait for the date to change naturally.
- Once you roll over into your birthday, you can change the clock as much as you want. As long as you don't roll over another midnight into a different date, this will not disable your birthday.
- Changing the clock to your exact birthday doesn't work. You must allow the date to roll over to the birthday.
SirToastyToes noticed that walking into a violently-shaking patch could break your chain. After a few days of trying out different theories, I found that the grass patches can have different appearances than their actual type in both ways; regular grass can appear as violently-shaking grass, and violently-shaking grass can appear as regular grass. I went on to find the rates that the grass patch appearance can mismatch. All of this is included in the write-up below.
My explanation of how XY Poké Radar generates: https://gist.github.com/Lusamine/d30e1313b0d9391a15a0315110bfcbc1
I used the research from 2018 as a starting point and added additional details that were not originally revealed.
How the grass patches are generated: https://gist.github.com/Lusamine/eefceb512859d76c05d54f65713f7a13
How the grass patch location is chosen: https://gist.github.com/Lusamine/98b4aa0b8923c02f770522298f8bc3af
How the shiny rate is incremented: https://gist.github.com/Lusamine/43358b1f4d5d9e07fafd5d691a8d9e27