Ako rýchlobežci Ocarina of Time prelomili hru novými spôsobmi

príslušný obrázok 2
Tento príbeh je súčasťou série ReSpec od Jacoba Roacha, ktorá pokrýva svet počítačových hier a hardvéru.

ReSpec je zvyčajne stĺpček o úžasnom technickom svete počítačových hier, ale občas sa nájdu témy, ktoré je príliš dobré nechať ujsť. Legenda o zelde:Okarína času je všeobecne uznávaný ako jeden z najlepšie hry Nintendo 64 ktorý bol kedy vyrobený, a hoci to nie je PC titul, najvyššia a najtechnickejšia rýchlosť hry odhaľuje, ako hry fungujú na základnej úrovni. Ešte dôležitejšie je, že tieto neuveriteľné výkony sú možné len s veľkým úsilím komunity.

Obsah

  • Ďaleko od svojvoľnosti
  • Hackovanie za behu

Odporúčané videá

Okarína času je hra, ktorú by normálnemu hráčovi zabralo asi 30 hodín; najskúsenejší speedrunneri, ktorí sa snažia hrať hru čo najrýchlejšie, ju dokážu zdolať za približne tri hodiny a 40 minút bez problémov. Kategória hry Any%, ktorá dáva hráčom za úlohu dokončiť hru bez ohľadu na použité metódy, je však obmedzená na tri minúty, 54 sekúnd a 566 milisekúnd. A áno, na týchto milisekundách záleží. Druhý držiteľ rekordu zaostáva za svetovým rekordom o necelú sekundu.

Hra Ocarina of Time pre Nintendo 64.

Aj keď ide o taký pozoruhodný výkon, to nie je všetko Okarína času speedruns priniesť na stôl. Na Summer Games Done Quick 2022, polročnom rýchlostnom bežeckom maratóne pre charitu, bola prezentácia, ktorá zdôraznila skupina speedrunnerov, ktorí preprogramujú hru za chodu, aby zobrazovali novú grafiku, prehrávali novú hudbu a dokonca spustili chat na Twitchi prekrytie. A to všetko bolo urobené na sériovej kópii hry bez predprogramovania.

The Okarína času komunita speedrunningu pokračovala v rozbíjaní hry zdanlivo nemožnými spôsobmi. Obrátil som sa na dvoch popredných ľudí v komunite, aby som zistil, čo robí klasickú hru Nintendo 64 takou, a všetko sa týka jedného zneužitia: ľubovoľného spustenia kódu.

Ďaleko od svojvoľnosti

Konzola Nintendo 64 a hry.
Rob Tek/Shutterstock

Arbitrary Code Execution, alebo ACE, znie oveľa zastrašujúcejšie, než v skutočnosti je. Je to termín obsadený v kybernetickej bezpečnosti, ktorý v podstate znamená spustenie kódu (alebo programu), ktorý by sa nemal spúšťať. Takto dannyb, speedrunner pre Okarína času ktorý je držiteľom druhého miesta v kategórii Any%, opísal ACE v Okarína času: „Spúšťanie ľubovoľného kódu v OoT je exploit, pri ktorom môže hráč pomocou akcií v hre usporiadať množstvo údajov v pamäti, aby napodobniť kód hry a potom manipulovať s miestom, kde sa hra snaží spustiť kód, aby bolo miestom, kde sme to práve urobili aranžovanie.”

Vďaka správnym akciám, dannyb hovorí, že hráči sú schopní „v podstate spustiť akýkoľvek kód, ktorý sa nám páči, v rámci hry a spôsobiť, že hra robiť veci, na ktoré nebolo naprogramované." Tieto akcie zahŕňajú veci tak zdanlivo zbytočné, ako je meno, ktoré zadáte pri spustení hra. To je presne tá akcia, ktorá to umožnila Okarína času byť tak rýchlo porazený.

V hre ako Okarína času, hra skontroluje svoju pamäť na splnenie určitej požiadavky, aby hru porazila. Cieľom v Any% speedrunu je preusporiadať pamäť tak, aby ste sa pozreli na meno vašej postavy namiesto toho, kde by zvyčajne vyzerala. Toto sa nazýva Stale Reference Manipulation alebo SRM a dannyb hovorí, že exploit je to, čo prasklo Okarína času speedruny sa otvárajú zásadným spôsobom.

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

„ACE v každej videohre vždy potrebuje tieto dve veci: jemne vyladenú kontrolu nad určitou oblasťou pamäte tak, aby to hráč mohol aby tam údaje napodobňovali kód a možnosť zmeniť miesto spustenia kódu na miesto, kde je vlastný kód lži. V roku 2019 bola v OoT objavená chyba s názvom Stale Reference Manipulation, ktorá vo veľkom otvorila druhú požiadavku,“ povedal dannyb.

V prípade normálneho Okarína času beh, zdanlivo náhodné akcie sa sčítajú, aby oklamali hru, aby skontrolovala oblasti (napríklad meno vašej postavy) pre požiadavky na dokončenie, keď by nemali. Je to dvojdielny proces. Vytvorte dátové zaťaženie, ako je meno vašej postavy, a manipulujte s pamäťou pomocou SRM, aby ste nasmerovali na toto užitočné zaťaženie.

Hackovanie za behu

Ukážka OoT Triforce Percent ACE: TASBot nás sem privádza na SGDQ 2022! (Beta + nový obsah)

Takto bijú rýchlostní bežci Okarína času za pár minút, ale nevysvetľuje to úplne, ako mohla s láskou pomenovaná vitrína Triforce% pridať nová textúra, modely, hudba, kód a dokonca aj prekrytie hry Twitch bez akejkoľvek úpravy hry kazeta. Savestate, jedna z myslí za týmto dlhoročným projektom, vysvetlila, že je to všetko o príprave konzoly Nintendo 64 tak, aby dáta ovládača chápala ako herné dáta.

Je to ukážka, ktorá je možná len vďaka TASBotu, ktorý je schopný vykonávať vstupy neľudskou rýchlosťou. Ako vysvetľuje Savestate: „Upravíme inštrukciu v pamäti, aby sme začali čítať údaje radiča ako inštrukcie N64. Za normálnych okolností by sa to zrútilo, ale vďaka TASBot je schopný simulovať ovládače a manipulovať s nimi neľudsky. rýchlosti, aby vyzerali ako inštrukcie N64, aby hra vykonávala údaje ovládača ako sadu vopred určených inštrukcie."

Bežci môžu do hry pridať ľubovoľný kód, ktorý chcú, len prostredníctvom vstupov ovládača.

Stručne povedané, vitrína Triforce% používa ACE a SRM ako normálne Okarína času speedrun, ale konkrétne to mení spôsob, akým konzola Nintendo 64 chápe pokyny. S týmto nastavením môžu bežci do hry pridať ľubovoľný kód, ktorý chcú, len prostredníctvom vstupov ovládača. Savestate pokračoval: „Neexistuje žiadna úprava hernej kazety. Na získanie vlastných údajov do pamäte používame chybu, ktorá nám umožňuje začať pridávať a upravovať veci pamäť pomocou TASBot, pričom sa s konzolou N64 spája iba prostredníctvom jej radiča porty.“

Port ovládača na Nintendo 64.

Tieto exploity nie sú objavené len náhodne. Savestate vysvetlil, že Okarína času komunita vyvinula nástroje na sledovanie toho, ako je pamäť usporiadaná v hre, ako aj programy na simuláciu rôznych usporiadaní pamäte. Emulátory ako Project64 veľmi pomáhajú a umožňujú bežcom a vývojárom nástrojov prejsť krok za krokom, ako hra spúšťa kód.

Okarína času je jednou z najikonickejších hier, aké boli kedy vytvorené, a robustná komunita venovaná speedrunningu umožnila hre prosperovať vďaka novému vývoju už desiatky rokov po jej pôvodnom vydaní. Využíva ako ten, ktorý napája najrýchlejšie Okarína času speedruny bagatelizujú výzvu, ktorá sa bežne spája s čo najrýchlejším prekonaním hry, ale tiež zdôrazniť neuveriteľnú technickú odbornosť a úsilie komunity, ktoré sa spája s pitvou a analýzou milovanej osoby hry.

Komunita si je vedomá tejto rovnováhy aj podľa dannyba: „Kategória OoT Any% speedrun je jediná na našich hlavných rebríčkoch, ktorá umožňuje ACE ako platný spôsob na splnenie cieľa. Vo všetkom ostatnom zakazujeme ACE, aby sme zachovali jedinečnosť, ktorá tieto kategórie priviedla k životu.

Tento článok je súčasťou ReSpec – priebežný dvojtýždenný stĺpec, ktorý obsahuje diskusie, rady a podrobné správy o technológiách, ktoré stoja za hraním počítačových hier.

Odporúčania redaktorov

  • Zelda: Ocarina of Time sa pripája do Siene slávy videohier
  • Rozšírenie N64 od Switch Online sa nezaobíde bez priesvitných ovládačov