ReSpec er normalt en klumme om pc-spils vidunderlige, tekniske verden, men af og til er der emner, der er for gode til at lade være. The Legend of Zelda:Tidens Ocarina er universelt anerkendt som en af dem bedste Nintendo 64-spil nogensinde lavet, og selvom det ikke er en pc-titel, afslører spillets højeste niveau, mest tekniske speedruns, hvordan spil fungerer på et grundlæggende niveau. Endnu vigtigere er disse utrolige bedrifter kun mulige med en stor indsats fra fællesskabet.
Indhold
- Langt fra vilkårlig
- Hacking i farten
Anbefalede videoer
Tidens Ocarina er et spil, der ville tage en normal spiller omkring 30 timer at slå; de dygtigste speedrunners, som sigter efter at spille spillet så hurtigt som muligt, kan slå det på omkring tre timer og 40 minutter uden fejl. Men spillets Any%-kategori, som pålægger spillerne at fuldføre spillet uanset de anvendte metoder, er nede på tre minutter, 54 sekunder og 566 millisekunder. Og ja, de millisekunder betyder noget. Andenpladsens rekordholder er mindre end et helt sekund efter verdensrekorden.
Selvom det er sådan en bemærkelsesværdig bedrift, er det ikke alt Tidens Ocarina speedruns bringer på bordet. Ved Summer Games Done Quick 2022, et halvårligt speedrunning-maraton for velgørenhed, var der et udstillingsvindue, der fremhævede en gruppe af speedrunners, der omprogrammerer spillet i farten for at vise ny grafik, spille ny musik og endda køre en Twitch-chat overlejring. Og alt det blev gjort på en lagerkopi af spillet uden forudprogrammering.
Det Tidens Ocarina speedrunning-fællesskabet er fortsat med at bryde spillet på tilsyneladende umulige måder. Jeg nåede ud til to af de førende hoveder i samfundet for at finde ud af, hvad der får det klassiske Nintendo 64-spil til at tikke, og det hele kommer ned til én udnyttelse: Vilkårlig kodeudførelse.
Langt fra vilkårlig
Arbitrary Code Execution, eller ACE, lyder meget mere skræmmende, end det faktisk er. Det er et begreb, der kastes rundt inden for cybersikkerhed, der grundlæggende betyder kørende kode (eller et program), der ikke bør køres. Sådan er dannyb, en speedrunner til Tidens Ocarina som har andenpladsen i kategorien Any%, beskrevet ACE i Ocarina of Time: "Vilkårlig kodeudførelse i OoT er en udnyttelse, hvorved en spiller kan bruge handlinger i spillet til at arrangere en masse data i hukommelsen til efterligne spilkode, og manipuler derefter det sted, hvor spillet søger at køre kode til at være det sted, hvor vi lige gjorde det arrangere.”
Med de rigtige handlinger siger dannyb, at spillere er i stand til "i det væsentlige at køre enhver kode, vi kan lide fra spillet, og få spillet til at gøre ting, den ikke var programmeret til at gøre." Disse handlinger inkluderer ting så tilsyneladende ubrugelige som det navn, du indtaster, når du starter spil. Det er præcis den handling, der har tilladt Tidens Ocarina at blive slået så hurtigt.
I et spil som Ocarina of Time, spillet tjekker sin hukommelse for et bestemt krav, der skal opfyldes for at slå spillet. Målet i en Any% speedrun er at omarrangere hukommelsen for at se på din karakters navn i stedet for, hvor den typisk ville se ud. Dette kaldes Stale Reference Manipulation, eller SRM, og dannyb siger, at udnyttelsen er det, der knækkede Tidens Ocarina speedruns åbner på en større måde.
[Tidligere verdensrekord] OoT Any% Speedrun i 3:55.300!
"ACE i ethvert videospil har altid brug for de to ting: finjusteret kontrol over et område af hukommelsen, så spilleren kan få dataene der til at efterligne kode, og muligheden for at ændre placeringen af kodeudførelsen til at være stedet, hvor den brugerdefinerede kode løgne. I 2019 blev en fejl kaldet Stale Reference Manipulation opdaget i OoT, som åbnede op for det andet krav på en stor måde,” sagde dannyb.
I tilfælde af en alm Tidens Ocarina køre, tilsyneladende tilfældige handlinger narre spillet til at kontrollere områder (såsom din karakters navn) for færdiggørelseskrav, når de ikke burde. Det er en todelt proces. Opret en datanyttelast, såsom din karakters navn, og manipuler hukommelsen med SRM for at pege mod den nyttelast.
Hacking i farten
OoT Triforce Percent ACE Showcase: TASBot bringer os her sammen ved SGDQ 2022! (Beta + nyt indhold)
Sådan slog speedrunners Tidens Ocarina på blot et par minutter, men det forklarer ikke fuldt ud, hvordan det kærligt navngivne Triforce%-showcase var i stand til at tilføje ny tekstur, modeller, musik, kode og endda et Twitch-overlay til spillet uden nogen ændring af patron. Savestate, en af hovederne bag dette årelange projekt, forklarede, at det handler om at forberede Nintendo 64-konsollen til at forstå controllerdata som spildata.
Det er et udstillingsvindue, der kun er muligt på grund af TASBot, som er i stand til at udføre input ved umenneskelige hastigheder. Som Savestate forklarer: "Vi ændrer en instruktion i hukommelsen for at begynde at læse controllerdata som N64-instruktioner. Normalt ville dette gå ned, men takket være TASBot er han i stand til at simulere controllere og manipulere dem på umenneskelig vis hastigheder til at ligne N64-instruktioner, så spillet udfører controllerdataene som et sæt forudbestemte instruktioner."
Løberne er i stand til at tilføje enhver kode, de vil have til spillet, blot gennem controller-input.
Kort sagt, Triforce%-showcasen bruger ACE og SRM som en normal Tidens Ocarina speedrun, men det ændrer specifikt, hvordan Nintendo 64-konsollen forstår instruktionerne. Med den opsætning er løberne i stand til at tilføje enhver kode, de vil have til spillet, blot gennem controller-input. Savestate fortsatte: "Der er ingen ændring af spilpatronen. For at få tilpassede data ind i hukommelsen bruger vi en fejl, der giver os mulighed for at begynde at tilføje og ændre ting i hukommelse ved hjælp af TASBot, mens den kun interfacerer med N64-konsollen gennem dens controller havne."
Disse udnyttelser er heller ikke kun tilfældigt opdaget. Savestate forklarede, at Tidens Ocarina community har udviklet værktøjer til at se på, hvordan hukommelsen er arrangeret i spillet, samt programmer til at simulere forskellige hukommelsesarrangementer. Emulatorer som Project64 hjælper meget og giver løbere og værktøjsudviklere mulighed for at gennemgå, hvordan spillet eksekverer kode trin-for-trin.
Tidens Ocarina er et af de mest ikoniske spil, der nogensinde er lavet, og det robuste, dedikerede speedrunning-fællesskab har givet spillet mulighed for at trives med nye udviklinger i årtier efter, at det oprindeligt blev udgivet. Udbytter som den, der driver den hurtigste Tidens Ocarina speedruns bagatelliserer den udfordring, der normalt er forbundet med at slå et spil så hurtigt som muligt, men de også fremhæve den utrolige tekniske ekspertise og samfundsindsats, der går til at dissekere og analysere elskede spil.
Fællesskabet er også opmærksom på denne balance, ifølge dannyb: "OoT's Any% speedrun-kategori er den eneste på vores hovedranglister, som tillader ACE som en gyldig måde at fuldføre målet. For alt andet forbyder vi ACE for at bevare det unikke, som førte disse kategorier til live i første omgang."
Denne artikel er en del af ReSpec – en løbende klumme hver anden uge, der inkluderer diskussioner, råd og dybdegående rapportering om teknologien bag pc-spil.
Redaktørens anbefalinger
- Zelda: Ocarina of Time slutter sig til Video Game Hall of Fame
- Switch Onlines N64-udvidelse vil ikke være komplet uden gennemskinnelige controllere