ReSpec is normaal gesproken een column over de wonderlijke, technische wereld van pc-gaming, maar af en toe zijn er onderwerpen die te mooi zijn om te laten liggen. De legende van Zelda:Ocarina of Time wordt alom geprezen als een van de beste Nintendo 64-spellen ooit gemaakt, en hoewel het geen pc-titel is, laten de meest technische speedruns van het spel op het hoogste niveau zien hoe games op een fundamenteel niveau werken. Wat nog belangrijker is, deze ongelooflijke prestaties zijn alleen mogelijk met veel inspanningen van de gemeenschap.
Inhoud
- Verre van willekeurig
- Onmiddellijk hacken
Aanbevolen video's
Ocarina of Time is een spel dat een normale speler ongeveer 30 uur zou kosten om te verslaan; de meest bekwame speedrunners, die ernaar streven het spel zo snel mogelijk te spelen, kunnen het zonder haperingen in ongeveer drie uur en 40 minuten verslaan. Maar de Any%-categorie van het spel, die spelers belast met het voltooien van het spel, ongeacht de gebruikte methoden, is teruggebracht tot drie minuten, 54 seconden en 566 milliseconden. En ja, die milliseconden zijn belangrijk. De recordhouder op de tweede plaats heeft minder dan een volle seconde achterstand op het wereldrecord.
Zelfs als het zo'n opmerkelijke prestatie is, is dat niet alles Ocarina of Time speedruns brengen naar de tafel. Tijdens Summer Games Done Quick 2022, een halfjaarlijkse hardloopmarathon voor het goede doel, was er een showcase die een groep speedrunners herprogrammeert het spel on-the-fly om nieuwe graphics weer te geven, nieuwe muziek af te spelen en zelfs een Twitch-chat te voeren overlay. En dat alles gebeurde op een voorraadexemplaar van het spel zonder voorprogrammering.
De Ocarina of Time De speedrunning-gemeenschap is doorgegaan met het breken van het spel op schijnbaar onmogelijke manieren. Ik nam contact op met twee van de leidende geesten in de gemeenschap om erachter te komen wat het klassieke Nintendo 64-spel drijft, en het komt allemaal neer op één exploit: Arbitrary Code Execution.
Verre van willekeurig
Arbitrary Code Execution, of ACE, klinkt veel intimiderender dan het in werkelijkheid is. Het is een term die in cyberbeveiliging wordt gebruikt en die in feite betekent dat er code (of een programma) wordt uitgevoerd die niet mag worden uitgevoerd. Dat is hoe Dannyb, een speedrunner voor Ocarina of Time die het record op de tweede plaats heeft in de categorie Any%, beschreef ACE in Ocarina of Time: “Arbitrary Code Execution in OoT is een exploit waarbij een speler in-game acties kan gebruiken om een heleboel gegevens in het geheugen te ordenen om spelcode nabootsen en vervolgens de locatie manipuleren waar de game code wil uitvoeren om de plaats te zijn waar we dat net hebben gedaan regelen van."
Met de juiste acties, zegt Dannyb, kunnen spelers "in wezen elke gewenste code uitvoeren vanuit het spel en ervoor zorgen dat het spel dingen doen waarvoor het niet is geprogrammeerd.” Deze acties omvatten zaken die schijnbaar nutteloos zijn, zoals de naam die u invoert wanneer u het spel. Dat is precies de actie die heeft toegestaan Ocarina of Time zo snel verslagen worden.
In een spel als Ocarina of Time, het spel controleert zijn geheugen om aan een bepaalde vereiste te voldoen om het spel te verslaan. Het doel van een Any% speedrun is om het geheugen te herschikken om naar de naam van je personage te kijken in plaats van waar het normaal gesproken zou staan. Dit wordt Stale Reference Manipulation of SRM genoemd, en Dannyb zegt dat de exploit is gekraakt Ocarina of Time speedruns openen op een belangrijke manier.
[Voormalig wereldrecord] OoT Elke% Speedrun in 3:55.300!
“ACE heeft in elke videogame altijd die twee dingen nodig: nauwkeurig afgestelde controle over een bepaald geheugengebied, zodat de speler dat kan de gegevens daar code laten nabootsen, en de mogelijkheid om de locatie van de uitvoering van de code te wijzigen om de plaats te zijn waar de aangepaste code is leugens. In 2019 werd een glitch genaamd Stale Reference Manipulation ontdekt in OoT, waardoor de tweede vereiste op een grote manier werd geopend, 'zei Dannyb.
In het geval van een normaal Ocarina of Time rennen, schijnbaar willekeurige acties tellen op om het spel te misleiden om gebieden (zoals de naam van je personage) te controleren op voltooiingsvereisten wanneer dat niet zou moeten. Het is een tweedelig proces. Creëer een gegevenslading, zoals de naam van je personage, en manipuleer het geheugen met SRM om naar die lading te wijzen.
Onmiddellijk hacken
OoT Triforce Percentage ACE Showcase: TASBot brengt ons hier samen op SGDQ 2022! (bèta + nieuwe inhoud)
Dat is hoe speedrunners verslaan Ocarina of Time in slechts een paar minuten, maar het verklaart niet volledig hoe de liefdevol genoemde Triforce% showcase kon toevoegen nieuwe textuur, modellen, muziek, code en zelfs een Twitch-overlay voor het spel zonder enige wijziging aan de patroon. Savestate, een van de bedenkers van dit jarenlange project, legde uit dat het erom gaat de Nintendo 64-console klaar te stomen om controllergegevens als spelgegevens te begrijpen.
Het is een showcase die alleen mogelijk is dankzij TASBot, die input met onmenselijke snelheden kan uitvoeren. Zoals Savestate uitlegt: “We wijzigen een instructie in het geheugen om controllergegevens te lezen als N64-instructies. Normaal zou dit crashen, maar dankzij TASBot is hij in staat om controllers te simuleren en ze op onmenselijke wijze te manipuleren snelheden om eruit te zien als N64-instructies, zodat de game de controllergegevens uitvoert als een reeks vooraf bepaalde instructies.”
De hardlopers kunnen elke gewenste code aan het spel toevoegen, gewoon via controller-invoer.
Kortom, de Triforce%-showcase gebruikt ACE en SRM zoals normaal Ocarina of Time speedrun, maar het verandert specifiek hoe de Nintendo 64-console instructies begrijpt. Met die opzet kunnen de hardlopers elke gewenste code aan het spel toevoegen, gewoon via controller-invoer. Savestate vervolgde: “Er is geen wijziging van de spelcassette. Om aangepaste gegevens in het geheugen te krijgen, gebruiken we een glitch waarmee we dingen kunnen toevoegen en wijzigen geheugen met behulp van TASBot, terwijl het alleen via de controller met de N64-console communiceert havens.”
Deze exploits worden ook niet zomaar willekeurig ontdekt. Savestate legde uit dat de Ocarina of Time community heeft tools ontwikkeld om te kijken hoe het geheugen in het spel is gerangschikt, evenals programma's om verschillende geheugenarrangementen te simuleren. Emulators zoals Project64 helpen veel, waardoor hardlopers en toolontwikkelaars stap voor stap kunnen doorlopen hoe de game code uitvoert.
Ocarina of Time is een van de meest iconische games ooit gemaakt, en dankzij de robuuste, toegewijde speedrunning-community kon de game tientallen jaren na de oorspronkelijke release gedijen met nieuwe ontwikkelingen. Exploits zoals degene die het snelst werkt Ocarina of Time speedruns bagatelliseren de uitdaging die normaal gesproken wordt geassocieerd met het zo snel mogelijk verslaan van een game, maar ze ook benadruk de ongelooflijke technische expertise en gemeenschapsinspanningen die worden besteed aan het ontleden en analyseren van geliefden spellen.
De gemeenschap is zich ook bewust van deze balans, aldus dannyb: “OoT's Any% speedrun-categorie is de enige op onze hoofdklassementen die ACE toelaat als een geldige manier om het doel te bereiken. Voor al het andere verbieden we ACE om de uniciteit te behouden die deze categorieën in de eerste plaats tot leven heeft gebracht.”
Dit artikel is onderdeel van ReSpec - een doorlopende tweewekelijkse column met discussies, advies en diepgaande rapportage over de technologie achter pc-gaming.
Aanbevelingen van de redactie
- Zelda: Ocarina of Time voegt zich bij de Video Game Hall of Fame
- De N64-uitbreiding van Switch Online is niet compleet zonder doorschijnende controllers