How We Solved the Worst Minigame in Zelda's History
Linkus73 HN recommenders · recommended in 3 months, 2020-2024
1.1M views · 6 years ago · explainer · evergreen
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.
HN recommends it as a rigorous, fun example of reverse engineering a game to predict and conquer its RNG.
39:47How lucky is too lucky?: The Minecraft Speedrunning Dream Controversy Explained
Stand-up Maths
8.4M views • 5 years ago
24:56The Legend of Zelda: Ocarina of Time Speedrun in 22:38, live at AGDQ2013
CosmoSpeedruns
1.9M views • 13 years ago
12:09How I Fixed a 10 Year Old Guitar Hero Bug Without the Source Code
ExileLord
404K views • 9 years ago
13:14Did Nintendo really forget to Optimize Super Mario 64 ? | MVG
Modern Vintage Gamer
1.3M views • 6 years ago
18:20FIXING the ENTIRE SM64 Source Code (INSANE N64 performance)
Kaze Emanuar
3.2M views • 4 years ago
22:21Reverse emulating the NES to give it SUPER POWERS!
suckerpinch
1.1M views • 8 years ago
5:01How a Laser-Shot Disk Defeats Hackers & Pirates (Coding Secrets)
GameHut
132K views • 8 years ago
5:58MarI/O - Machine Learning for Video Games
SethBling
11.5M views • 11 years ago
46:01Exploring Sid Meier's Pirates! - BASIC Code, Quirks, Bugs on Commodore 64
8-Bit Show And Tell
115K views • 5 years ago
11:55Super Mario World Credits Warp Explained
Frieze
638K views • 11 years ago
26:41Finding the BEST sine function for Nintendo 64
Kaze Emanuar
418K views • 3 years ago
2:48TI DOOM
TPMFofMFF
199K views • 18 years ago
2:29[TAS] Super Mario World "Arbitrary Code Execution" in 02:25.19 by Masterjun
Masterjun3
943K views • 12 years ago
5:22:14The Complete History of the A Button Challenge
Bismuth
2.4M views • 3 years ago
6:08Super Mario World: Arbitrary Code Injection At AGDQ 2014, Performed Live
invalidation
225K views • 12 years ago
9:34New NES Tetris Technique: Faster Than Hypertapping!
aGameScout
5.1M views • 5 years ago
1:25Armok Invaders
BaronWable
57K views • 10 years ago
16:18Computer program that learns to play classic NES games
suckerpinch
2.2M views • 13 years ago
58:44TasBlock at AGDQ 2017: TASBot
TASVideosChannel
398K views • 9 years ago
8:24How the Minecraft Title Screen Seed was Found
SalC1
10.8M views • 6 years ago
5 comments from Hacker News
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
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
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.
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 ).
Good point. That approach was in fact used for "Sploosh Kaboom", a RNG minigame in the Windwaker: ▶ this video