… Except for this one, which only has 4 coins in it. So, why is this one different from all the others?

Well, every coin spawner has a subtype. Across all of SM64… Except for this one, which only has 4 coins in it. So, why is

this

one different from all the others?

Well, every coin spawner has a subtype. Across all of SM64 there are only 7 subtypes used, which are displayed above. Notice that there’s no subtype that creates 4 coins. That’s because the coin spawner in THI is actually subtype 0, and so it’s meant to spawn 5 coins on the ground.

But then, where’s the 5th coin? My first thought was that it spawns on the death barrier way down below (like the mystery goomba does), but that’s not the case.

To truly see what’s going on, we need to use STROOP – a program that can show us the object slots in real time. Let’s see what happens when we spawn the coins. As you can see, there are now 4 loaded coins, which are the coins we already know about.

But what’s odd is that there’s a 5th coin, and it’s unloaded. That means that on the frame that the other 4 coins loaded, this 5th coin loaded and then immediately unloaded.

Here, I’ve used hacks to show where this 5th coin had been right before it unloaded. So, why would it spawn here and then immediately unload?

To understand what’s going on, we need to understand how the subtype-0 coin spawner works. Normally, the coin spawner object is invisible, but here I’ll be showing it as a blue circle with an S.

When Mario gets within 2000 units of the coin spawner, it spawns 5 coins. It spawns these coins 300 units above itself, and the coins are separated by 160 units.

However, the coins are meant to be on the ground, not in the air. Thus, each coin checks how high the floor is. The floor-checking function starts at 78 units above the coin, and searches downwards until it finds a floor.

At this point, each coin compares its own height to the floor height that it found. (FYI, a coin’s position is measured by its bottom center, and so that’s the height it uses for this comparison.)

Interestingly, at this point, a special failsafe comes into play: If a coin determines that it’s below the floor, then it immediately unloads. As expected, this failsafe only ends up affecting the leftmost coin.

And for all remaining coins, their height then gets set to the floor height that they found. Thus, the final result is 4 loaded coins on the ground and 1 unloaded coin, exactly as we observed earlier.

The root cause of this situation is that the coin spawner is located under the ground. Here, I’m using a hack to make invisible objects appear as signs – that way we can see where the coin spawner is.

In contrast, all other coin spawners in the game are locate either on the ground or slightly above the ground.

But for some reason, this coin spawner in THI is located under the ground, thereby activating the failsafe that no other coin spawner does.

If the coin spawner were just 50 units higher, then the 5th coin would be above the floor that it detects, and thus would spawn normally.

On the other hand, if the coin spawner were just 29 units lower, then the 5th coin wouldn’t detect the floor above it. Instead, it would detect the death barrier way down below, and so it would spawn there. However, now the 4th coin triggers the failsafe instead.

Anyway, it’s quite odd that in both the huge and tiny versions of THI, there are positional coin blunders in the same area. So odd in fact, that one might suspect that there’s a deeper, underlying reason for it.

Thus I present to you what I believe to be the underlying reason, which I call the Slope X Hypothesis.

Here, I’m showing the cross sections of the areas of interest, with huge THI on the top and tiny THI on the bottom. In both cases, there are objects located under the ground.

Now what if I told you that the geometry of the ground in this area used to be different. Skeptical? Well, watch this…

To aid in discussion, we’ll refer to the left green slope as Slope L, the right green slope as Slope R and this new hypothetical red slope as Slope X.

I believe that the earlier in the development of THI it was Slope X that existed, and it was Slope X that was used to place the coins and coin spawner.

But then later in development, the programmers removed Slope X and replaced it with Slopes L and R, and they forgot to update the positions of the coins. So, why would they make this change?

Well, take a look at the position of the bowling ball spawners. With slope X, the bowling balls would roll to the right. But with slopes L and R, the would instead roll to the left.

Thus, I believe the bowling balls were originally intended to roll in the other direction, but then later in development, the programmers changed their minds.

Thus, they replaced Slope X with Slopes L and R, doing so in such a way so as to minimise the hilliness of the new geometry. (After all, they’d want this path to be pretty flat for the race with Koopa the Quick.)

This is why Slope L is just barely downhill to the left. They needed it to be downhill to the left, but making it any steeper than this would have caused Slope R to be unnecessarily steeper.

Furthermore, this is why Slopes L and R form their apex exactly at the bowling ball spawner.Anymore to the left would have caused the bowling balls to roll to the right. Anymore to the right would have caused Slope R to be unnecessarily steeper.

Separately, the ledge over here is raised, meaning that it could very well be used to keep bowling balls from going over the edge. And yet, the bowling balls never even come this way.

And finally, look at this rocky triangle on the ground, which seems out of place among the rest of the grassy ground. Could it be that it was placed here as a way to the bridge Slopes L and R with the ledge originally meant for Slope X?

Perhaps they gave it a less friendly appearance so as to subtly keep the player more inland on this area, since they had to remove the raised ledge that was here previously.

Anyway, that’s just my hypothesis. but regardless of the underlying reason for it, the fact remains that there’s a coin here that’s impossible to collect.

Even if we instantaneously warp to the coin’s position before it loads (done here with hacks), we still don’t collect it. That’s because the coin unloads before it even checks for collision with Mario.

There’s no way to move the coin spawner into a different position, where it could spawn all 5 coins simultaneously.

Even if we cloned the coin spawner (which we can’t do), it would be of no use, since releasing a coin spawner clone causes it to no longer function properly.

On the other hand, we can clone the coin itself. However, if we release the coin clone after the coin’s already unloaded, then nothing happens.

Furthermore, there’s no way to release the coin clone exactly at the moment that the coin’s loaded. On one frame, we release the clone too early. And on the next frame, we release the clone too late.

And so for better or for worse, we’re presented with yet another impossible coin. And I don’t think we’ll be collecting it anytime soon.

For the most part, this explanation makes sense. The only thing that seems a bit off is the explanation about the bowling balls and how they switched them from moving from one direction to the other. He just makes it seem as though the angle of the ground is what causes the balls to move (like in real life) whereas I suspect they don’t. Super Mario 64 isn’t programmed like modern games where every object has realistic physics. These bowling balls move along a predetermined path. But the reason why I don’t pay much heed to this argument is that even though the slopes don’t determine movement, the path should follow the flow of the map. What would have been really interesting would have been if they had made the bowling balls roll to both sides of the slop, alternating.