ID.nl logo
Zo bouw je een retrocomputer
© Reshift Digital
Zekerheid & gemak

Zo bouw je een retrocomputer

Ben je een liefhebber van oude computersystemen, dan heb je al gemerkt dat de apparaten steeds schaarser en duurder worden. Voor een originele 80486, MSX, Amiga, Atari ST of Amstrad moet je diep in de buidel tasten … áls je er al een tegenkomt. Voor velen zit er dan ook niets anders op dan met emulators of virtuele machines aan de slag te gaan. Dat geeft helaas niet altijd het gewenste resultaat. Gelukkig is er een alternatief: zelf bouwen met een speciale chip en losse onderdelen.

Spreekt het onderwerp retrocomputing of retrogames je aan, dan heb je de FPGA-chip (field-programmable gate array) wellicht al eens voorbij zien komen. De FPGA wordt vaak aangeprezen als een ‘wonderchip’ die totale nauwkeurigheid biedt en geen vertraging heeft zoals een emulator. Verschillende commerciële bedrijven, zoals www.analogue.co, gebruiken de FPGA als hart van hun spelsystemen en hebben daar groot succes mee.

Dankzij de betaalbaarheid neemt de populariteit bij hobbyisten die er eigen opensource-projecten mee starten dan ook snel toe. Een van die opensource-projecten is het MiSTer-project dat op een gebruiksvriendelijke manier verschillende oude computers via de FPGA-chip van de Terasic DE10-Nano-development-kit opnieuw tot leven brengt. Op dit moment wordt gewerkt aan verschillende FPGA-implementaties zoals een 80486-pc, NeoGeo, Game Boy en Sega Mega CD. Het aantal projecten neemt snel toe.

01 Wat is een FPGA?

De beste manier om een FPGA te omschrijven, is dat het een flexibele chip is die je naar wens kunt (her)programmeren. De moderne FPGA bestaat uit een groot aantal programmeerbare logische schakelingen die samen een functie kunnen uitvoeren. Je kunt de chip zodanig programmeren dat hij precies doet wat je wilt en volledig geoptimaliseerd is voor de functie waarvoor hij geprogrammeerd is. Het mooie is dat de FPGA ook weer opnieuw geprogrammeerd kan worden om een nieuwe functie uit te voeren. De programmeerbare infrastructuur kent bijna geen grenzen, een FPGA kan worden gebruikt om elke gewenste logische functie of verzameling functies te implementeren, zelfs meerdere processorkernen. De FPGA is vooral bedoeld voor de professionele doeleinden waarbij data-intensieve toepassingen veel efficiënter verwerkt moeten worden. Maar een FPGA-chip kan dus ook gebruikt worden om zich voor te doen als een oude retromachine.

Zo maak je van je pc een retrogame-emulator

02 Emulatie en her-implementatie

Emuleren is een uiterst inefficiënte manier om hardware te simuleren. Voor een vrij simpele hardware-emulatie is naar verhouding een beest van een processor nodig. Ook worden in de meeste gevallen niet alle instructies goed geëmuleerd, zodat de software uiteindelijk niet werkt zoals het op de originele hardware deed. Daarbij hebben vele aspecten invloed op de prestaties. Is het systeem even druk met een ander proces, dan is dat vrijwel direct te merken in de emulatie. Bij het spelen een spelletje kan dat ongewenste resultaten geven. Denk aan een platformspel dat de ene keer een tiende van een seconde eerder input vraagt om te springen en een andere keer een tiende later. De ene keer tuimel je de afgrond in, de andere keer haal je net het einde niet.

Een relatief eenvoudige FPGA kan dit trucje veel efficiënter uitvoeren, omdat de originele elektronische circuits op de FPGA worden gerecreëerd en de instructies niet softwarematig vertaalt hoeven worden. Deze werkwijze geeft nagenoeg dezelfde ervaring als de originele hardware, omdat de instructies uitgevoerd worden zoals dat bij het origineel ook gebeurde. Bij sommige implementaties gaat het zelfs zo ver dat bepaalde vertragingen, die op de originele hardware optreden, ook optreden bij de emulatie via de FPGA. Bij gebruik van een FPGA spreekt de community liever niet over emulatie, maar over het ‘her-implementeren’ van de originele hardware.

©PXimport

03 Van Minimig tot MiSTer

De eerste stappen om een FPGA te gebruiken voor het recreëren van een retrocomputer werden gezet in januari 2005. Toen kwam de Nederlandse elektrotechnisch ingenieur Dennis van Weeren met het concept om een nieuwe Amiga 500 met de FPGA als basis te ontwikkelen: de Minimig of Mini Amiga. Waarschijnlijk heeft dit project anderen geïnspireerd en zijn hier weer verschillende ideeën uit voortgevloeid. Een daarvan is de MiST FPGA-computer, ontworpen rondom de Intel Cyclone III FPGA en bedoeld om klassieke 16bit-computers zoals de Amiga en Atari ST op te implementeren. De vrij actieve community heeft verschillende zogenoemde cores voor het systeem ontwikkeld, zoals een NES (Nintendo Entertainment System), Apple+ II en Commodore 64. Maar de Cyclone III liep tegen zijn limiet. Veel meer dan deze 8- en 16bit-systemen pasten niet in deze FPGA, er was een grotere FPGA nodig.

De Intel Altera Cyclone III FPGA Development Kit kostte destijds ruim 1.200 dollar en was daarom niet interessant om als basis te gebruiken voor de MiST FPGA-computer. De Terasic DE10-Nano Development Kit met Cyclone V FPGA heeft een veel lager prijskaartje van ongeveer 110 euro. Deze development kit werd de basis voor het MiSTer-project, dat opgestart is door Alexey Melnikov. Deze grotere FPGA maakt veel meer mogelijk, zo kan er een 80486-pc op geïmplementeerd worden. Verder zijn er cores van een Sega Mega CD, GameBoy Advance en NeoGeo AES.

©PXimport

04 MiSTer-uitbreidingen

Een van de uitbreidingen voor het MiSTer-project is het MiSTer IO Board. Dit uitbreidingsbord is ook ontworpen Alexey Melnikov (de projectleider van het MiSTer-project). Het ontwerp is vrij verkrijgbaar voor iedereen. Het MiSTer IO Board is een optionele uitbreiding die boven op de Terasic DE10-Nano-soc wordt aangesloten. Het voegt functies toe aan het MiSTer-platform, zoals een VGA-connector voor analoge videobeelden, 3,5mm-audiopoort, drie knoppen, drie statusleds, een tweede slot voor een micro-sd-kaart, een fan voor koeling en een gebruikerspoort in de vorm van een usb-connector (dit is geen normale usb-poort, maar een soort seriële poort).

Het IO Board is niet de populairste uitbreidingsmodule, dat is de MiSTer SDRAM-geheugenmodule. Het ddr3-geheugen dat op de Terasic DE10-Nano zit is te snel voor de meeste cores. Het heeft een te hoge latentie en is niet geschikt voor de timings die nodig zijn voor het edo-dram van vroeger. Er zijn drie varianten van de MiSTer SDRAM-geheugenmodule met 32, 64 en 128 MB geheugen. De SDRAM-geheugenmodule met 128 MB geheugen is nodig voor de nieuwste cores zoals de NeoGeo en om Game Boy Advance-roms op te laden. Een volledig overzicht van de uitbreidingen en de cores vind je op de wiki-pagina.

©PXimport

05 Waar te koop?

MiSTer is opensource en vrij toegankelijk voor iedereen. Het wordt door de community in leven gehouden. De aanbieders van onderdelen hebben deze vaak zelf in elkaar gezet. Veel van deze aanbieders zijn gevestigd in de VS. Maar ook op Chinese websites als AliExpress duiken steeds vaker onderdelen op voor het MiSTer-project. Wij hebben onderdelen van de webshop www.misterfpga.co.uk gebruikt. Deze webshop is gevestigd in het Verenigd Koninkrijk en biedt een brede keuze aan uitbreidingen. De Terasic DE10-Nano Development Kit is bij verschillende webshops te vinden. Wij kochten ons exemplaar via www.digikey.com. Op het forum www.misterfpga.org vind je meer informatie over het project en de verschillende uitbreidingen.

©PXimport

06 Zelf aan de slag

Om met MiSTer aan de slag te gaan, hoef je natuurlijk niet direct álle onderdelen aan te schaffen. De meest belangrijke onderdelen zijn de Terasic DE10-Nano, een koelelement en een MiSTer SDRAM-geheugenmodule. Het IO Board, de usb-hub en de behuizing kunnen ook op een later moment worden toegevoegd. Wel heb je een omvormer nodig van micro-usb-b (mannetje) naar usb-a (vrouwtje) nodig om het toetsenbord op aan te sluiten. Eventueel kun je ook een eigen usb-hub aansluiten op de usb-otg-connector.

▼ Volgende artikel
Bestandsnamen in bulk wijzigen? Maak kennis met PowerRename uit Power Toys
© ID.nl
Huis

Bestandsnamen in bulk wijzigen? Maak kennis met PowerRename uit Power Toys

Een paar bestanden hernoemen is zo gebeurd. Maar zodra je tientallen of honderden namen moet aanpassen, schiet handmatig werk tekort. Dan komt externe software goed van pas. PowerRename, onderdeel van de PowerToys-collectie, biedt uitkomst. Met deze slimme tool kun je grote aantallen bestanden in één keer hernoemen. Dat gaat snel, efficiënt en precies zoals jij het wilt.

Dit gaan we doen

In dit artikel zie je hoe je PowerRename uit PowerToys instelt en gebruikt om grote aantallen bestanden tegelijk te hernoemen. We laten zien hoe je de tool activeert, hoe je hem oproept via Verkenner en hoe je zoek-en-vervangacties, letterinstellingen en automatische nummering toepast. Zo wijzig je in één keer volledige reeksen bestandsnamen, zonder handmatig werk.

Lees ook: Leuker, sneller en handiger: boost je Windows-pc met PowerToys

PowerRename activeren

PowerRename is een stuk krachtiger dan de standaard hernoemfunctie van Windows. De tool maakt deel uit van PowerToys, een opensource-project van Microsoft. Wil je de Microsoft Store-versie installeren? Open dan het Startmenu, zoek naar Microsoft Store en start de app. Typ PowerToys in het zoekveld bovenaan. Klik op Installeren zodra je het programma hebt gevonden. Na installatie verschijnt PowerToys in het systeemvak van Windows. Open het, kies in de linkerkolom PowerRename en je ziet meteen een korte animatie van hoe de tool werkt. Klik op Instellingenopenen en controleer of PowerRename is ingeschakeld. Let op: bij ons werkte PowerRename pas na een herstart van het systeem.

Een animatie toont hoe PowerRename werkt.

Contextueel menu in Verkenner

Open de map met de bestanden die je wilt hernoemen. Selecteer ze allemaal met Ctrl+A en klik met de rechtermuisknop op de selectie. In het contextmenu van Windows Verkenner kies je onderaan de opdracht Naam wijzigen met PowerRename.

Haal PowerRename uit het contextueel menu in Windows Verkenner.

Zoeken en vervangen

Daarna opent het venster van PowerRename. In het veld Zoeken geef je in welk deel van de bestandsnaam je wilt vervangen. In het veld eronder typ je de nieuwe tekst. In ons voorbeeld vervangen we het woord Image door Kreta2015. Nog vóór de wijziging wordt uitgevoerd, toont PowerRename een overzicht: links de oorspronkelijke bestandsnamen, rechts de nieuwe. Zo zie je meteen wat er verandert. Daaronder kies je of de aanpassing moet gelden voor de volledige naam inclusief extensie, alleen de bestandsnaam, of alleen de extensie.

Met de knoppen onder Tekstopmaak pas je eenvoudig het hoofdlettergebruik aan, van alles in kleine letters, naar alles in hoofdletters, alleen een hoofdletter aan het begin, of elke beginletter van een woord in hoofdletters. Het laatste pictogram schakelt de nummering in. Activeer je dat, dan voegt PowerRename automatisch nummers tussen haakjes toe aan de bestandsnamen.

De nieuwe namen verschijnen in voorvertoning naast de oorspronkelijke namen.     

Je allermooiste foto's hernoemd?

Druk ze af en plak ze in een foto-album
▼ Volgende artikel
Wat is local dimming en waarom is het belangrijk?
© ER | ID.nl
Huis

Wat is local dimming en waarom is het belangrijk?

Het gebrek aan een rijk contrast is een van de grootste ergernissen bij lcd- en ledtelevisies. Fabrikanten hebben daarom een slimme techniek bedacht die het contrast aanzienlijk verbetert: local dimming. In dit artikel leggen we uit hoe deze techniek van jouw grijze nachtlucht weer een inktzwarte sterrenhemel maakt.

Het contrast van je televisie is misschien wel de belangrijkste eigenschap voor mooi beeld. We willen dat wit verblindend wit is en zwart echt inktzwart. Bij oledtelevisies is dat makkelijk, want daar geeft elke pixel zelf licht. Maar de meeste televisies in de Nederlandse huiskamers zijn nog steeds lcd- of ledschermen (inclusief QLED). Die werken met een lamp achter het scherm, de zogeheten backlight. Local dimming is de techniek die probeert de nadelen van die achtergrondverlichting op te lossen.

Om te begrijpen waarom local dimming nodig is, moet je eerst weten hoe een standaard led-tv werkt. Simpel gezegd is het een groot paneel met pixels die zelf geen licht geven, maar alleen van kleur veranderen. Achter die pixels brandt een grote lichtbak. Als het beeld zwart moet zijn, sluiten de pixels zich om het licht tegen te houden. Helaas lukt dat nooit voor de volle honderd procent; er lekt altijd wat licht langs de randjes. Hierdoor zien donkere scènes er vaak wat flets en grijzig uit. De achtergrondverlichting staat immers vol aan, ook als het beeld donker moet zijn.

Nooit meer te veel betalen? Check Kieskeurig.nl/prijsdalers!

De lampen dimmen waar het donker is

Local dimming pakt dit probleem bij de bron aan. In plaats van één grote lichtbak die altijd aan staat, verdeelt deze techniek de achtergrondverlichting in honderden (en bij duurdere tv's soms duizenden) kleine zones. De televisie analyseert de beelden die je kijkt continu. Ziet de processor dat er linksboven in beeld een donkere schaduw is, terwijl rechtsonder een felle explosie te zien is? Dan worden de lampjes in de zone linksboven gedimd of zelfs helemaal uitgeschakeld, terwijl de lampjes rechtsonder juist fel gaan branden.

Het resultaat is direct zichtbaar. Zwart wordt weer echt zwart, simpelweg omdat er geen licht meer achter dat deel van het scherm brandt. Tegelijkertijd blijven de lichte delen van het scherm helder. Dat zorgt voor een veel groter contrast en geeft het beeld meer diepte. Vooral bij het kijken van HDR-films en -series is dat van belang. Zonder local dimming kan een led-tv eigenlijk geen goed HDR-beeld weergeven, omdat het verschil tussen licht en donker dan te klein blijft.

©ER | ID.nl

Niet alle local dimming is hetzelfde

Het klinkt als een wonderoplossing, maar de uitvoering verschilt enorm per televisie. Het grote toverwoord hierbij is het aantal zones. Hoe meer zones de tv onafhankelijk van elkaar kan aansturen, hoe preciezer het licht kan worden geregeld. Goedkopere televisies gebruiken vaak edge lit local dimming. Hierbij zitten de lampjes alleen in de rand van de tv. Dat werkt redelijk, maar is niet heel nauwkeurig. Je ziet dan soms dat een hele verticale strook van het beeld lichter wordt, terwijl er eigenlijk maar één klein object moest worden verlicht.

De betere variant heet full array local dimming. Hierbij zitten de lampjes over de hele achterkant van het scherm verspreid. De allernieuwste en beste vorm hiervan is miniLED. Daarbij zijn de lampjes zo klein geworden dat er duizenden in een scherm passen, wat de precisie van oled begint te benaderen. Als er te weinig zones zijn, kun je last krijgen van zogenaamde 'blooming'. Dat zie je bijvoorbeeld bij witte ondertiteling op een zwarte achtergrond: er ontstaat dan een soort wazige lichtwolk rondom de letters, omdat de zone groter is dan de tekst zelf.

Welke merken gebruiken local dimming?

Bijna elke grote televisiefabrikant past deze techniek inmiddels toe, maar ze doen dat voornamelijk in hun middenklasse en topmodellen. Samsung is een van de voorlopers, zeker met hun QLED- en Neo QLED-televisies, waarbij ze in de duurdere series gebruikmaken van geavanceerde miniLED-techniek voor zeer precieze dimming. Ook Sony staat bekend om een uitstekende implementatie van full array local dimming, die vaak geprezen wordt om de natuurlijke weergave zonder overdreven effecten. Philips past het eveneens toe in hun (mini)ledmodellen, vaak in combinatie met hun bekende Ambilight-systeem voor een extra contrastrijk effect.

Ga voor de full monty!

Local dimming is dus geen loze marketingkreet, maar een dankbare techniek voor iedereen die graag films of series kijkt op een led- of QLED-televisie. Het maakt het verschil tussen een flets, grijs plaatje en een beeld dat van het scherm spat met diepe zwartwaarden. Ben je in de markt voor een nieuwe tv? Vraag dan niet alleen óf er local dimming op zit, maar vooral of het gaat om full array dimming. Je ogen zullen je dankbaar zijn tijdens de volgende filmavond!

Vijf fijne televisies die full array local dimming ondersteunen