Zo werkt Retroarch (4): Negen manieren om je spelplezier te verhogen
Retroarch biedt allerlei manieren om je spelplezier te verhogen. In dit artikel deel ik er negen die wat mij betreft het meest bruikbaar zijn of voor de mooiste effecten zorgen. Het is een hele waslijst, dus ga er lekker voor zitten.
- Save states
- Aangepaste controls
- Shaders
- Overlays
- Inputvertraging verminderen
- Cheats
- Rewind
- Retro Achievements
- Overrides
Een voordeel van emulators is dat ze vaak allerlei extra’s bieden ten opzichte van de originele hardware. Bijvoorbeeld functionaliteiten die destijds nog helemaal niet bestonden of waarvoor je allerlei (dure) hulpmiddelen nodig had. Hieronder vind je de belangrijkste extra’s die beschikbaar zijn in Retroarch.
Let op: ik behandel niet de opties die per core verschillen en die je kunt aanpassen via Quick Menu > Core Options. Die moet je zelf maar bekijken. Ik beperk me tot Retroarch-brede features.
1. Save states om op elk moment te stoppen en weer verder te gaan
De bekendste ‘aanvullende’ functionaliteit van emulators zijn save states. Moest je vroeger een wachtwoord opschrijven of een save point bereiken om je spel op te slaan, tegenwoordig is het mogelijk op elk gewenst moment te stoppen en weer verder te gaan.
Het geldt voor hardcore gamers als valsspelen, maar als je een druk volwassen leven leidt, kun je eigenlijk niet om het gebruik van save states heen. Een belangrijk telefoontje? Stoppen en straks verder vanaf hetzelfde punt. Huilt de baby? Opslaan en dadelijk weer doorgaan.
In Retroarch doe je dat door tijdens het spelen van een game het Quick Menu te openen via de door jou ingestelde knoppencombinatie (Weet je nog?) en te navigeren naar Save State. Retroarch maakt dan een momentopname van jouw voortgang.
Wil je een volgende keer verder waar je was gebleven, dan open je na het starten van het spel wederom het Quick Menu en selecteer je Load State. Je hebt duizend slots per game tot je beschikking, via State Slot bepaal je welke je wilt gebruiken.
Het is ook mogelijk om via Settings > Input > Hotkeys knoppencombinaties in te stellen waarmee je snel kunt opslaan, laden of tussen de beschikbare slots wisselen. Wees hiermee voorzichtig: voor je het weet heb je met een druk op de knop per ongeluk je spel op een onfortuinlijk punt opgeslagen in plaats van geladen.
2. Controls aanpassen aan je voorkeuren
Je weet al dat je de Retropad kunt configureren via Settings > Input > Port 1 Controls (en 2, en 3 etc.) Je kunt echter voor iedere afzonderlijke game de controls naar eigen smaak aanpassen. Dit is vooral handig bij het emuleren van arcade-spellen of home-computers waarbij de originele controls sterk afwijken van wat heden ten dage de standaard is.
Ga naar Quick Menu en dan Controls om per controller de knoppenindeling te veranderen. In hetzelfde menu kun je ook kiezen welk type input je wilt nabootsen voor het systeem dat je aan het emuleren bent (joystick, muis, trackball, afstandsbediening etc.)
Vervolgens sla je je eigen indeling op voor het spel dat je aan het spelen bent via Save Game Remap File. Wil je dat alle games die je met de huidige core speelt deze indeling overnemen? Kies dan Save Core Remap File. Je kunt zelfs je indeling bewaren voor alle games die in dezelfde directory staan als het spel dat je aan het spelen bent via Save Content Directory Remap File.
Wil je een opgeslagen indeling laden voor gebruik in een andere game, kies dan Load Remap File. Alle remaps worden als .rmp-bestand opgeslagen in de Retroarch-hoofdmap onder config/remaps.
3. Videoshaders voor bijzondere effecten
Retroarch biedt talloze mogelijkheden om de aanblik van games met behulp van shaders aan te passen. Dit zijn extra ‘lagen’ over het beeld voor een bepaald effect. Wil jij graag neonlichten om je spelfiguren om het effect van een oude Vectrex te simuleren? Dat kan. Speel je liever in zwart-wit? Kan ook. Ondersteboven, op z’n kant, dubbele weergave, het is allemaal mogelijk.
Klinkt als een leuke gimmick, maar verreweg de meeste spelers gebruiken shaders voor het nabootsen van een bepaald type (verouderd) display, zoals een oude CRT-televisie of computermonitor. Met name oude 2D-games zien er op een hypermodern scherm te goed uit. Ze worden zó perfect weergegeven, dat ze een harde uitstraling krijgen. Door bilinear filtering aan te zetten via Settings > Video > Bilinear Filtering verzacht je dit wat, maar dat vind ik meestal té wollig. Je krijgt een beter resultaat door een nostalgische shader in te zetten die het analoge signaal van een oude straalbuis nabootst. Je kunt het scherm zelfs die ouderwetse bolling of gloed meegeven.
Afhankelijk van je beeldformaat heb je zonder shader ook kans dat je geëmuleerde content niet pixel perfect wordt weergegeven, wat resulteert in grafische onvolkomenheden. Je kunt dit weliswaar verhelpen door via Settings > Video > Integer Scaling aan te zetten, maar dan wordt het weergegeven beeld meestal veel kleiner dan je schermformaat. Zonder van al dat ongebruikte screen real estate.
Er zijn op internet verhitte discussies over welke shader het beste is voor welk systeem. Elke dag denkt iemand de heilige shader-graal te hebben gevonden: eentje die nóg authentieker en nostalgischer is dan wat gisteren populair was. Als je niet oppast, verdwijn je volledig in dit rabbit hole.
Ik speel games uit de jaren tachtig en negentig graag met een shader die de scanlines van een straalbuis-tv nabootst. Daarvoor zijn crt-easymode of zfast-crt erg geschikt. Crt-aperture is ook een mooie. Die bootst het display na van de luxueuze Sony Trinitron. Ik hoef geen bolling, gloed of andere toeters en bellen, dat vind ik overdreven. Denk jij daar anders over, probeer dan eens crt-geom of crtglow_gauss.
Er zijn een heleboel van zulke voorgeïnstalleerde mogelijkheden, dit zijn presets. Je vindt deze via Quick Menu > Shaders (Zet Video Shaders op ON als dat nog niet is gebeurd) en kies Load. Standaard zie je dan de map Shaders, selecteer deze. Afhankelijk van het apparaat waar je op speelt, zie je in de directory daaronder één tot drie mappen die eindigen op _cg, _glsl en _slang. De inhoud van de mappen komt deels overeen, maar het verschil is de technologie die wordt gebruikt om de shaders weer te geven.
Preciezer: het gaat om de ’taal’ waarin de shaders zijn geschreven. CG is primitiever (en minder veeleisend) dan GLSL. Slang is nieuwer, flexibeler én veeleisender dan beide voorgangers. Ik geloof dat de makers van Retroarch uiteindelijk op die laatste willen inzetten vanwege de flexibiliteit, maar ik gebruik voorlopig uitsluitend shaders in de GLSL-map.
Je kunt meerdere shaders over elkaar heen plaatsen door bij Shader Passes het nummer te verhogen. De ene shader of shadercombinatie is lastiger weer te geven in de ene shadertaal dan de andere. Dus soms werken ze gewoon niet, of je scherm gaat op zwart. Dat hangt trouwens ook van de grafische kracht af van het systeem waarop je speelt. Op een oude Android-telefoon is minder mogelijk dan op een splinternieuwe pc.
De presets zijn vaak een combinatie van meerdere shaders over elkaar heen. Wil je een Game Boy-spel weergeven zoals het er vroeger uitzag? Navigeer dan in het shader-overzicht naar de submap Handheld > Console-border en kies één van de dmg– of gb-dmg-alt-shaders. Experimenteer erop los, maar schrik niet van onverwachte crashes.
Oh, zet bij het experimenteren met shaders wel even Remember Last Used Shader Directory op ON. Zo voorkom je dat je steeds weer vanaf het begin door die enorme hoeveelheid shadermappen moet ploegen.
NB: niet elke versie van Retroarch (afhankelijk van het apparaat waar het op draait) biedt de mogelijkheid om shaders in te stellen. Je kunt in dat geval een videofilter instellen via Settings > Video > Video Filter. De meeste filters vind ik niet zo mooi, dus ik gebruik deze optie nooit wanneer het niet hoeft. Het meest natuurlijke resultaat krijg je via een filter als Normal 2x in combinatie met Bilinear Filtering aanzetten.
4. Het scherm verfraaien met overlays
Overlays zijn een soort kaarten die je over of naast het speelscherm legt. Omdat de meeste oude games in beeldformaat 4:3 worden weergegeven, heb je op een breedbeeld-tv of -monitor (formaat 16:9) altijd zwarte randen aan de zijkant. Nu kun je het scherm natuurlijk oprekken tot dat brede formaat, maar dan klopt er niets meer van de verhoudingen.
Om de zijkanten toch op te vullen, kun je zo’n overlay gebruiken. Die geeft bijvoorbeeld een afbeelding weer van het spelsysteem dat je emuleert, of toont het oorspronkelijke artwork rond het beeldscherm van een speelhalspel, compleet met logo of uitleg van de controls.
Het is een extraatje, maar ik merk dat het de spelbeleving net iets chiquer maakt. Zelf gebruik ik graag deze overlays, maar er zijn er nog veel meer. Sommige overlays simuleren een bepaald effect zoals scanlines en concurreren zo qua functie met shaders. Het overlaypakket van Orions Angel werkt het beste in combinatie met een shader die een bol scherm simuleert.
Standaard zitten er al wat overlays in Retroarch. Als je er zelf wilt toevoegen, moet je ze in de submap overlays zetten in jouw Retroarch-map. Daarna ga je via Quick Menu naar On-Screen Overlay (zet Display Overlay op ON als je niets ziet) en maak vervolgens je keuze via Overlay Preset. Iedere overlay bestaat uit twee bestanden: een .png-bestand en een .cfg-bestand. Die moet je beiden in dezelfde map plaatsen. Retroarch leest het .cfg-bestand (een configuratiebestandje) om de .png (gewoon een afbeelding) weer te geven.
5. Inputvertraging (latency) verminderen
Vervelend aan gamen in de moderne tijd: je hebt veel meer last van inputvertraging, ofwel latency. De hoeveelheid latency (vaak weergegeven in milliseconden) staat voor de tijd die verstrijkt tussen jouw druk op een knop en de reactie op het scherm.
In de goede oude tijd, toen we allemaal straalbuis-tv’s hadden en bekabelde controllers, zat er bijna geen tijd tussen actie en reactie. Maar nu, dankzij bluetooth-controllers, draadloos internet en LED-schermen die het beeld verfraaien via post-processing, gaan er kostbare milliseconden verloren die in jouw game het verschil kunnen betekenen tussen leven en dood.
Hedendaagse games houden daar rekening mee, maar games van 20, 30 jaar geleden zijn niet gemaakt met de huidige technologie indachtig. Daarom kan het spelen van een spel als Super Mario World uit 1991 aanvoelen alsof je reactiesnelheid nog veel meer naar de gallemiezen is dan je leeftijd zou rechtvaardigen. Ben je nou zó oud geworden?
Het antwoord is ja, maar het komt ook door de hoge inputvertraging.
Eén van de tofste functies van Retroarch is daarom de mogelijkheid om games via Run-Ahead to Reduce Latency een paar frames (tellen) vooruit te laten lopen. Retroarch rekent vervolgens ’terug’ wat de reactie zou moeten zijn van jouw knoppeninput. Het resultaat bij een optimale instelling is dat je zelfs minder latency ervaart dan op de originele hardware.
Deze optie zet je aan via Quick Menu > Latency. Je kunt zelf kiezen hoeveel frames je het spel vooruit wilt laten lopen. Maar pas op: bij een te hoog getal wordt het spel onspeelbaar omdat er dan teveel frames worden overgeslagen en het getoonde beeld niet meer correspondeert met jouw input.
Meestal zijn 1 à 2 frames genoeg. Of dit werkt, hangt ook af van de core die je gebruikt en het systeem dat wordt geëmuleerd. Het werkt het beste bij 8- en 16-bit gameconsoles -en is daar ook het meeste nodig. Als je systeem het aankan, zet je Use Second Instance to Run-Ahead aan. Er loopt dan in de achtergrond een tweede versie van de core mee om het rekenproces te versnellen. Daarvoor moet je een stevige processor hebben.
Je kunt in hetzelfde menu ook Hard GPU Sync aanzetten. Dit is een andere manier om vertraging te verminderen doordat je videokaart en processor worden gedwongen gelijktijdig op te trekken. Ook dit vraagt aardig wat rekenkracht en de resultaten kunnen verschillen.
6. Cheats gebruiken als je niet kunt winnen
Oude games zijn over het algemeen veel moeilijker dan hedendaagse. Er was simpelweg niet genoeg ruimte voor tutorials en introducties die de speler keurig aan het handje namen. Je werd meteen voor de leeuwen geworpen en je had geen internet om snel even op te zoeken hoe je verder moest als je vast zat. Alle hulp was dus welkom.
Als je die hulp niet uit een magazine kon halen, dan had je altijd nog randapparatuur als de Game Genie of de Action Replay om vals te spelen. Je stak deze apparaten tussen het spel en de hardware en voerde codes in om bijvoorbeeld met honderd levens te beginnen, alle levels meteen vrij te spelen of oneindig veel geld, wapens, of andere hebbedingen te verkrijgen.
In Retroarch kun je precies hetzelfde doen. Daarvoor moet je via het Main Menu naar de Online Updater en dan Update Cheats. Je download zo de nieuwste cheatlijsten van de Retroarch-server. Om cheats te gebruiken, open je een game en daarna het Quick Menu. Als het de eerste keer is dat je cheats zoekt voor het betreffende spel, navigeer je naar Cheats en kies je Load Cheat File (Replace). Als je een bestaande lijst cheats wilt aanpassen, kies je Load Cheat File (Append).
Soms zijn er meerdere cheat-bestanden (in .cht-formaat) voor een bepaalde game, voor bijvoorbeeld de Action Replay of de Game Genie. Als je de lijst hebt gekozen, verschijnt in het cheat-menu een overzicht met genummerde cheats die je afzonderlijk aan of uit kunt zetten. Of het werkt en je het juiste cheat-bestand gebruikt voor de juiste game, moet je zelf testen.
Het is ook mogelijk om Retroarch zelf naar cheats te laten zoeken via Start or Continue Cheat Search. Je moet dan codes aanpassen om in de programmatuur waarden te vinden die je kunt uitbuiten. Dit is alleen nodig als je een cheat wilt toevoegen die niet al in de database staat. Deze manier van werken gaat mij boven de pet en zó graag gebruik ik geen cheats. Wil je er zelf mee aan de slag, dan vind je hier een uitleg.
7. Terugspoelen om je fouten ongedaan te maken
Deze gebruik ik zelf niet, maar heb ik voor de gelegenheid getest. Het werkt redelijk eenvoudig. Het kost wel aardig wat rekenkracht van je device, omdat er in feite een opname wordt gemaakt van je speelsessie die je zelf kunt terugspoelen. Om dit mogelijk te maken, is het noodzakelijk dat je een hotkey instelt om je spel mee terug te spoelen.
Hotkeys heb ik eerder behandeld, je vindt deze via Settings > Input > Hotkeys. Kies daar een hotkey voor de Rewind-optie. Overigens kun je hier ook hotkeys instellen voor vóóruit spoelen of het spel in slow motion afspelen.
Als je een spel hebt opgestart, ga je naar Quick Menu > Rewind. Hier zet je Rewind Support op ON. Je kunt hier dan instellen hoeveel frames je tegelijk wilt terugspoelen (Hoe hoger het getal, hoe sneller) en hoeveel schijfruimte er gereserveerd moet worden voor de rewind-data. Een hoger aantal MB betekent dat je verder kunt terugspoelen.
8. Retro Achievements voor eeuwige roem
Rond 2006/2007 kwamen achievements in zwang op de Xbox 360 en later Playstation 3. Steam volgde op de voet. Ze worden ook wel trophies, badges of medals genoemd. Het gaat om een soort meta-beloningen die je vrijspeelt door bepaalde doelen in een game te halen. Op het moment dat je iets doet in een game dat aan de criteria voor zo’n achievement voldoet, krijg je een melding met meestal een plaatje en een beschrijving.
Achievements variëren van ‘Gefeliciteerd, je hebt level 1 gehaald’ tot ‘Je hebt het spel uitgespeeld zonder continues te gebruiken’ en ‘Je hebt het geheim in de derde kamer van links ontdekt binnen 3 minuten terwijl je met één hand de controller bediende’.
Het is volledig aan de speler om hier al dan niet waarde aan te hechten. Sommigen boeit het geen fluit, anderen maken er een sport van om alle achievements of trophies te halen die er maar zijn. Het aardige aan achievements vind ik dat ze je soms in de richting duwen van geheimen, nieuwe tactieken of alternatieve manieren van spelen door je te belonen van de gebaande paden af te wijken.
Via retroachievements.org is het nu ook mogelijk om achievements te behalen voor oude games. Net als Retroarch zelf is het een non-profit initiatief: leden van de community bedenken uitdagingen en uploaden deze in het systeem. Als je een account hebt aangemaakt, kun je deze gebruiken om in diverse emulators in te loggen, zo ook in Retroarch.
Ga daarvoor naar Settings > Achievements (zet hier Achievements op ON om alle opties weer te geven.) Vul je gebruikersnaam en wachtwoord in, zo log je elke keer dat je een game begint automatisch in. Niet alle games hebben achievements. Als je een versie speelt die afwijkt, bijvoorbeeld een hack of game met alternatieve titel, kan het zijn dat die niet wordt herkend, ook al zijn er achievements voor beschikbaar.
Het is natuurlijk allemaal liefdewerk oud papier, dus soms werkt het zonder reden gewoon even helemaal niet. Als het wél werkt, verschijnen achievements automatisch in beeld zodra je er één vrijspeelt. Als je tijdens het spelen van een game het Quick Menu opent en in dit menu naar Achievements navigeert, zie je een overzicht van alle behaalde en nog te halen trofeeën voor je game.
Het vrijspelen van achievements levert je punten op, die je kunt gebruiken om op te scheppen over je retro-score in de community. Door Hardcore Mode aan te zetten in Settings > Achievements, kun je je score verdubbelen. Addertje onder het gras is dat je dan geen save states, cheats en andere hulpmiddelen meer kunt gebruiken.
Het maakt niet uit in welke emulator je een achievement behaalt. Via je account op retroarchievements.org kun je ze allemaal terugvinden, evenals je retro-score.
9. Je voorkeuren opslaan via overrides
Veel instellingen zoals hierboven beschreven, kun je per spel, per core of per directory opslaan. Dat geldt voor de core-opties (Quick Menu > Core Options), de Shaders en de controllerinstellingen via Controls.
Voor andere zaken is er standaard geen mogelijkheid om aanpassingen afzonderlijk op te slaan, zoals On-Screen Overlay en Latency. Hetzelfde geldt voor de instellingen die je via Main Menu > Settings benadert (Drivers, Video, Audio etc.). Voor al deze zaken geldt: wat je hier aanpast, geldt voor Retroarch in zijn geheel, dus iedere core neemt eventuele aanpassingen over.
Dat kan vervelend zijn als je bijvoorbeeld voor één core een andere videodriver wilt gebruiken dan voor de rest. Of voor elke afzonderlijke spelconsole een eigen overlay wilt hebben. Je wilt dit niet elke keer handmatig weer goed zetten. Hoe maak je dit makkelijker?
Simpel: via Quick Menu > Overrides. Hier kun je per game, core of directory vastleggen dat specifieke aanpassingen voorrang hebben op de overkoepelende configuratie. De volgende keer dat je de content start, laadt ook de override. Overrides worden opgeslagen in het configuratiebestand (.cfg) van de core, de directory, of het spel.
Dat is soms een beetje lastig, want zo kun je een ongewenste override niet snel weggooien. Je moet dan de aangepaste instellingen handmatig weer terugzetten of rommelen in het .cfg-bestand, Het zou makkelijker zijn als er aparte override-bestandjes werden geschreven, maar zo werkt Retroarch nu eenmaal.
De ‘hiërarchie’ van alle opgeslagen instellingen en configuraties in Retroarch (dus core-opties, remaps, opgeslagen shader presets en overrides) is als volgt:
- Instellingen per game hebben voorrang op…
- Instellingen per directory, die weer voorrang hebben op…
- Instellingen per core.
Indien bovenstaande afwezig zijn, dan gebruikt Retroarch de algemene instellingen.
Meer info over dit onderwerp vind je hier.
Was dat alles?
Er zijn nog veel meer opties, zoals Netplay. Het is natuurlijk supergaaf dat je -als het werkt- oude games niet alleen zoals vroeger op de bank naast elkaar samen kunt spelen, maar ook online over grote afstanden.
Netplay is echter een onderdeel van Retroarch waar ik geen ervaring mee heb omdat het me nog nooit is gelukt om op te zetten. Maar ik heb er dan ook niet erg veel tijd ingestoken. Als ik hier in de toekomst nog eens mee aan de slag ga, dan zal ik mijn ervaringen zeker delen.
Verder heb je de mogelijkheid om je speelsessie te livestreamen. Ook dit gebruik ik niet. Je moet ergens een grens trekken. 🙂
In de volgende en laatste aflevering vertel ik je hoe je Retroarch kunt updaten zonder de door jou zo minutieus samengestelde configuratie kwijt te raken.
Voorgaande afleveringen: