Talks to Watch

How We Solved the Worst Minigame in Zelda's History

1.1M views · May 19, 2020 · 24:32 · 3 HN recommenders · 5 mentions · discussed 2020–2024

Linkus7 explains how a community reverse-engineered The Wind Waker to predict its random number generator and beat the Sploosh Kaboom battleship minigame consistently. It includes d3 animations by Peter Schmidt-Nielsen.

Why Hacker News points people here: HN recommends it as a rigorous, fun example of reverse engineering a game to predict and conquer its RNG.

“is a fun video about reverse-engineering Zelda to predict the randomness in a minigame”HN comment, 2024

What Hacker News said 5

RecommendsleshokuninSep 2020

“recent work on removing randomness from Wind Waker runs”

Removing randomness from Wind Waker runs.

Full comment

Excellent video. I'm impressed the author went to recreate the run frame by frame, and then used those findings to analyze what was happening. Never expected this video to turn into a full on reverse engineering explanation. As a side note, this kind of speed run has become more popular in the recent years for a combination of reasons: - First, it's difficult to improve on the regular world records since they're so optimized (just have a look at Quake Done Quick and its sequels). - Second, the emulators available to the speed running community have evolved. They now include better ways to track what's happening in memory. - Third, the games themselves are understood better (as recently exemplified by the Super Mario 64 full reverse engineering). So it's creating a whole new genre of runs that simply isn't about execution anymore. If you're interested in the topic, you might like the Super Mario World speed run that uses a similar technique ( link ), or the recent work on removing randomness from Wind Waker runs ( this video ).

in “Super Mario Bros. 3 in 3 Minutes – World Record Speedrun Explained [video]” · view on HN
RecommendsmbStavolaJul 2023

“a video on how a group of speed runners were able to conquer RNG for a puzzle in Wind waker”

Rigorous analysis of conquering RNG in Wind Waker puzzle.

Full comment

The sheer depth of knowledge and analytical ability pannenkoek has is honestly quite amazing. I've become quite spoiled watching their SM64 videos, it's been incredibly hard to find something of similar rigor and production value for other games. The closest I've found so far has been a video on how a group of speed runners were able to conquer RNG for a puzzle in Wind waker[0]. [0]: this video

in “Super Mario 64 – Watch for Rolling Rocks – 0.5x a Presses [video]” · view on HN
Recommendsnick238Jul 2024

“is a fun video about reverse-engineering Zelda to predict the randomness in a minigame”

Reverse-engineering Zelda to predict randomness in a minigame.

Full comment

If you're developing a game, there's a fairly big issue in that many things may be requesting values from, and thus incrementing, the PRNG, and many of them could be indirectly controlled by the user (where they are, where they're looking, etc. this video is a fun video about reverse-engineering Zelda to predict the randomness in a minigame) As far as the approach, I agree in that I don't understand why 'no code changes' is that important, especially in the context of Python which has a general attitude of consent towards monkeypatching code. Maybe one of the randomness sources was hashing all the source files? :P

Cites itBorisTheBraveJul 2020

“That approach was in fact used for”

Example of predicting RNG in a minigame.

Full comment

Good point. That approach was in fact used for "Sploosh Kaboom", a RNG minigame in the Windwaker: this video

in “Is every game of Slay the Spire winnable?” · view on HN
Cites itTapamNApr 2021

“Another good example of predicting RNG, after a large amount of gameplay, for a non-turn-based game”

Example of predicting RNG in a real-time game.

Full comment

That's true. I did think about mentioning this possibility, but decided not to. Another good example of predicting RNG, after a large amount of gameplay, for a non-turn-based game: this video I think in certain Pokemon games, people figured out how to predict and manipulate random encounters based on an animation in the load screen.

in “PCG32: The Perfect PRNG for Roguelikes (2018)” · view on HN