Jak rychlostní běžci Ocarina of Time rozbíjí hru novými způsoby

Respekt dt doporučený obrázek 2
Tento příběh je součástí série ReSpec Jacoba Roacha, která pokrývá svět počítačových her a hardwaru.

ReSpec je normálně sloupek o úžasném technickém světě počítačových her, ale občas se najdou témata, která jsou příliš dobrá na to, abychom je nechali stranou. Legenda o Zeldě:Okarína času je všeobecně uznáván jako jeden z nejlepší hry pro Nintendo 64 kdy byly vyrobeny, a přestože se nejedná o PC titul, nejvyšší a nejtechničtější speedruny této hry odhalují, jak hry fungují na základní úrovni. Ještě důležitější je, že tyto neuvěřitelné výkony jsou možné pouze s velkým úsilím komunity.

Obsah

  • Daleko od svévole
  • Hackování za chodu

Doporučená videa

Okarína času je hra, která by normálnímu hráči zabrala kolem 30 hodin; nejzkušenější speedrunneri, kteří chtějí hrát hru co nejrychleji, ji dokážou porazit přibližně za tři hodiny a 40 minut bez závad. Ale kategorie Any% hry, která ukládá hráčům dokončit hru bez ohledu na použité metody, je omezena na tři minuty, 54 sekund a 566 milisekund. A ano, na těch milisekundách záleží. Rekordman na druhém místě zaostává za světovým rekordem o necelou sekundu.

Hra Ocarina of Time pro Nintendo 64.

I když jde o tak pozoruhodný počin, to není vše Okarína času speedruns přinést na stůl. Na Summer Games Done Quick 2022, půlročním speedrunningovém maratonu pro charitu, byla ukázka, která zdůraznila skupina speedrunnerů, kteří přeprogramují hru za chodu, aby zobrazovali novou grafiku, přehrávali novou hudbu a dokonce provozovali chat na Twitchi překrytí. A to vše bylo provedeno na sériové kopii hry bez předprogramování.

The Okarína času komunita speedrunningu pokračovala v rozbíjení hry zdánlivě nemožnými způsoby. Oslovil jsem dva z předních mozků komunity, abych zjistil, co dělá klasickou hru Nintendo 64 tak šmrncovní, a vše se týká jediného využití: Libovolné spouštění kódu.

Daleko od svévole

Konzole Nintendo 64 a hry.
Rob Tek/Shutterstock

Arbitrary Code Execution, neboli ACE, zní mnohem děsivěji, než ve skutečnosti je. Je to termín zažitý v kybernetické bezpečnosti, který v podstatě znamená spouštění kódu (nebo programu), který by se neměl spouštět. Takhle dannyb, speedrunner pro Okarína času který drží druhý rekord v kategorii Any%, popsal ACE v Okarína času: „Arbitrary Code Execution in OoT je exploit, při kterém může hráč pomocí akcí ve hře uspořádat spoustu dat v paměti, aby napodobit herní kód a poté manipulovat s místem, kde se hra snaží spustit kód, aby bylo místem, kde jsme to právě udělali zařizování.”

Díky správným akcím, dannyb říká, že hráči jsou schopni „v podstatě spustit jakýkoli kód, který se nám líbí, ze hry a způsobit, že hra dělat věci, na které nebylo naprogramováno." Tyto akce zahrnují věci tak zdánlivě zbytečné jako jméno, které zadáte při spuštění hra. To je přesně ta akce, která umožnila Okarína času být tak rychle poražen.

Ve hře jako Okarína času, hra kontroluje svou paměť na určitý požadavek, který je třeba splnit, aby hru porazil. Cílem v Any% speedrunu je přeskupit paměť tak, aby se podívala na jméno vaší postavy místo toho, kde by se obvykle dívala. Tomu se říká Stale Reference Manipulation nebo SRM a dannyb říká, že exploit je to, co prasklo Okarína času speedruny se otevírají zásadním způsobem.

[Bývalý světový rekord] OoT Any% Speedrun za 3:55 300!

„ACE v jakékoli videohře vždy potřebuje tyto dvě věci: jemně vyladěnou kontrolu nad určitou oblastí paměti tak, aby to hráč mohl aby tamní data napodobovala kód a možnost změnit umístění spouštění kódu tak, aby bylo místo, kde je vlastní kód lži. V roce 2019 byla v OoT objevena závada nazvaná Stale Reference Manipulation, která otevřela druhý požadavek velkým způsobem,“ řekl dannyb.

V případě normálního Okarína času běh, zdánlivě náhodné akce se sčítají, aby hru oklamaly, aby zkontrolovala oblasti (jako je jméno vaší postavy) kvůli požadavkům na dokončení, když by neměly. Je to dvoudílný proces. Vytvořte datovou zátěž, jako je jméno vaší postavy, a manipulujte s pamětí pomocí SRM tak, aby ukazovala na tuto užitečnou zátěž.

Hackování za chodu

OoT Triforce Percent ACE Showcase: TASBot nás sem přivádí na SGDQ 2022! (Beta + nový obsah)

Tak bije speedrunners Okarína času za pár minut, ale plně to nevysvětluje, jak mohla láskyplně pojmenovaná vitrína Triforce% přidat nová textura, modely, hudba, kód a dokonce i překryvná vrstva Twitch do hry bez jakýchkoli úprav kazeta. Savestate, jedna z hlav stojících za tímto letitým projektem, vysvětlila, že je to všechno o přípravě konzole Nintendo 64, aby chápala data ovladače jako herní data.

Je to ukázka, která je možná pouze díky TASBotu, který je schopen provádět vstupy nelidskou rychlostí. Savestate vysvětluje: „Upravujeme instrukci v paměti, aby začala číst data řadiče jako instrukce N64. Normálně by to havarovalo, ale díky TASBotu je schopen simulovat ovladače a manipulovat s nimi za nelidské rychlosti, aby vypadaly jako instrukce N64, takže hra spouští data ovladače jako sadu předem určených instrukce."

Běžci mohou do hry přidat libovolný kód, který chtějí, pouze prostřednictvím vstupů ovladače.

Stručně řečeno, ukázka Triforce% používá ACE a SRM jako normální Okarína času speedrun, ale konkrétně to mění způsob, jakým konzole Nintendo 64 rozumí pokynům. Díky tomuto nastavení mohou běžci do hry přidat libovolný kód, který chtějí, pouze prostřednictvím vstupů ovladače. Savestate pokračoval: „Neexistuje žádná úprava herní kazety. Abychom dostali vlastní data do paměti, používáme závadu, která nám umožňuje začít přidávat a upravovat věci paměti s pomocí TASBot, zatímco pouze rozhraní s konzolí N64 přes její řadič porty.”

Port ovladače na Nintendo 64.

Tyto exploity také nejsou jen náhodně objeveny. Savestate vysvětlil, že Okarína času komunita vyvinula nástroje pro sledování toho, jak je paměť uspořádána ve hře, a také programy pro simulaci různých uspořádání paměti. Emulátory, jako je Project64, hodně pomáhají a umožňují běžcům a vývojářům nástrojů projít si, jak hra provádí kód krok za krokem.

Okarína času je jednou z nejikoničtějších her, jaké byly kdy vytvořeny, a robustní, oddaná komunita speedrunningu umožnila hře prosperovat díky novému vývoji po celá desetiletí poté, co byla původně vydána. Využívá jako ten, který je napájen nejrychleji Okarína času speedruny bagatelizují výzvu, která je normálně spojena s co nejrychlejším poražením hry, ale také vyzdvihnout neuvěřitelnou technickou odbornost a úsilí komunity, které jde do pitvání a analýzy milovaného hry.

Komunita si je této rovnováhy také vědoma, podle dannyba: „Kategorie OoT Any% speedrun je jediná na našich hlavních žebříčcích, která umožňuje ACE jako platný způsob, jak splnit cíl. Ve všem ostatním zakazujeme ACE, abychom zachovali jedinečnost, která tyto kategorie přivedla k životu.“

Tento článek je součástí ReSpec – průběžný dvoutýdenní sloupek, který zahrnuje diskuze, rady a podrobné zprávy o technologiích, které stojí za hraním na PC.

Doporučení redakce

  • Zelda: Ocarina of Time vstupuje do Síně slávy videoher
  • Rozšíření N64 Switch Online nebude kompletní bez průsvitných ovladačů