Hey everyone! As an update from my previous post 'How to Predict and Understand what Items are in Every Box' I'm also writing a post about how you can manipulate your item seed for your first race - meaning you will know every item in every box.
If you have not read the previous post about the 'Next Item' Ram Address I suggest you read that first.
So from the previous post we know that there is a 256 sequence which handles what items you will receive from your next box. But how do you know your starting position in the sequence? Well this is determined by another address which I call 'Master Time'. Master Time is a ticking address that updates hundreds of times every frame, when you start a race (or reset) your 'Next Item' address is derived from 'Master Time'
The Master Time Address is OD4000
Therefore, if you know the current value of your 'Master Time' address you will know your position in the item sequence.
Luckily, by starting the game in a specific way you can control your 'master time' address before you start a first race. To do this, you must restart your Nintendo and then do not touch anything until the game progresses to the first menu scene (where it says START, LESSON, OPTION) you must let the entire start credits scene play before this screen, if you skip this intro scene (where it says PUSH START BUTTON) this trick will not work. From here you can continue through the menu and pick your first race. If you did this correctly, you will start with the 'Next Item' value of 30 and your first 2 items in first place will both be invisibility boards. You can find the entire item sequence below.
You can also staticly change your 'Master Time' address by painting any board any color within the shop multiple times (don't ask me why this works, i dont know). Below I will attach how many paint jobs change your starting 'Next Item' address.
No Paint - 30
1 Paint job - B5
2 Paint job - FB
3 paint job - F2
4 Paint job - 18
5 Paint job - D1
6 Paint job - B6
7 Paint job - C5
This list goes for a long time, so its up to the player to determine where they want to start the sequence, I would recommend 7 paint jobs to start at C5 for newer players as it has 2 quick succession first place fans. I personally use 24 Paint Jobs to get me to position 3B so that I can maximize invisibility boards. If you want to see this in practice, I have a run linked below with commentary where I use this technique.
Because of the way that 'Master Time' updates when you are in a race - unfortunately this technique cannot be used after your first race (because 'Master Time' is now at a value that we cannot know). If a way to determine this value is discovered, it would be a huge discovery as every race items would be manipulable!! I hope this is helpful for any runners! I personally use it to make Night Highway much easier but there are a variety of different ways it could be used and theorycrafted (for example, you could get a mouse from a box on Rookie mountain to help with coin collection).
If you have any ideas on how to use this tech or any questions please leave a comment.
-arianafan420
After talking to RagtimeMoz via DM a bit, I wanted to put an Update on this post.
Sorry to bother you! I'll be explaining some computer science terms and notations, so if you're familiar, skip ahead.
We're looking at registries. That's "physical" memory storing the 0s and 1s. It's addressed like 0x0D4001 - which is the "name" of the registry the CPU uses to work with that registry.
Numbers with a 0x in front tell you they are in hexadecimal. So it's 0-15, not 0-9 as you're used to. We use A-F to write 10-15 in hexadecimal. So 0xA would be a 10 (in decimal). I will still use decimal as the default numbers, but I might note them as 10(dec) to show it's in the normal decimal representation and not in hexadecimal.
Pseudo randomness describes something that feels random (like the next item we would get in a fun-racer game) but actually follows a determined path. There are books out there that actually have been used, containing pages of random numbers - but if you're always starting with page 1, it's not a random sequence anymore. It became deterministic.
Look Up Tables (LUT) are what the name suggests. You look up one value, you get another value. We're going to use two different LUTs for this guide.
Next Item Counter (NIC) is the name we gave to the Next Item Address (0x122298). Once the race is going, the NIC progresses by +1 every time you get an item.
The registry is 0x0D4001 (1 Byte) - that's more precise than what we used before (0x0D4000 with 2 Bytes). So the numbers are not jumping as much, and it's a smooth 0 to 255 counter. It's still updating up to a few times per frame.
Technical explanation: the Master time was found and identified in a 2 Byte view as a decimal representation. By looking at it in binary, it's clear that it's only really updating the more significant byte, which turns out to be a smooth counter.
After finding out it's a simple 0 to 255 counter, it's way less scary. It's progressing by about 1-3 per frame. We're not sure what progresses it and why it pauses in the menu.
By painting a board, it's unfrozen just long enough to add 12(dec) to the Master Time every time.
One thing we looked at was if there are other ways to get other Master Times to start from (or a quicker way than letting the intro run). So far, we've not been able to find a way to set the Master Time after leaving the first main menu.
Ways to set the Master Timer:
- Full Intro = 0x22
- Hand Tutorial = 0xF7
- Parachute Tutorial = 0xA2
- Ice Tutorial = 0xBD
- Snowman Tutorial = 0x4F
- Bomb Tutorial = 0xEB
- Fan Tutorial = 0x82
- Ghost Tutorial = 0x94
- Pan Tutorial = 0x84
- Stone Tutorial = 0xDa
- Mouse Tutorial = 0xC0
- Board Tutorial = 0xE8
The NIC and your current place in the race determine the Item you get when hitting a box.
There is some pseudo-randomness added to determine the NIC. We filled in a full LUT by poking the Master Timer in EmuHawk. You can check out My Data on GSheets [1] at "0D4001 Counter to NIC LUT"
For example, after the Full Intro, we're at Master Time = 0x22. So when we start the race, the NIC will be 48(dec). Looking at the "Full Item Mappings", we can see that:
If we are hitting a blue box (right half of the table)
And if we are in first place (leftmost in that half of the table or "BLUE 1st item"), we will be getting an (invisible) board!
The NIC progresses by adding +1 every time we get an item. (blue or red)
Continuing with our example from above, we're adding +1(dec) to the NIC when getting that invisible board. So we're one line down to 0x31 or 49(dec). It's another invisible Board if we get another blue and are still in the first place when hitting that box.
But we can also see that we just missed out on a Fan, and we'll be getting a lot of stones following this. So if we want to, we can progress through the NIC faster by getting the next 3 boxes of any color before we need to catch a blue box to get another board.
Stax coded the Item Predictor [2] that can be seen in the above video by ArianaFan420.
In this tool, he has a small LUT that's only for the red and blue items when in first place. I've extended his data in my Full Item Mappings by using My Script [3] (be aware that the results may be off. I would appreciate it if someone reruns the script and/or reviews the code!).
By progressing the Master Time via painting a board, we're not directly progressing in the NIC List. It's supposed to be randomised... but it's only scrambled, and due to the LUT we can reverse this.
We know that when starting after the full intro, we're at Master Time = 0x22.
We also know a paint job adds 12 to the Master Time.
"Master time after Intro (0x22)" + "7 paintjobs" = 34(dec) + (7*12) = 34(dec) + 84(dec) = 118(dec)
So we need to check the Counter to NIC LUT. It tells us we're starting at NIC being 197(dec) or 0xC5
Checking with the table provided by ArianaFan420 above, it says C5.
This can be done for any number of paint jobs, starting from any Timer after Tutorials (or full intro).
0x0D4001 (1 Byte) is a more precise version of the same counter (update your RAM Watch). You can also manipulate the Master Time by watching the tutorials first. Board Paintings add 12 to the counter, so you can use the LUT to determine any starting position.
If you put in the effort, you can calculate (almost) any starting position for the NIC you want.
Use the resources and join the Discord!
- iFuzzle
Resources:
[2] Item Predictor
[3] My Script
P.S.: Thanks to ArianFan420 and Stax for their groundwork and collaboration on this! Hope it's not too complicated and maybe someone with better taste than me wants to rework the tables so they look good and are not just functional...)









