in , ,

Waarom je ook een MiSTer FPGA wilt.

Lang vervlogen tijden, jij als beginnende gamer, een NES en een rennende loodgieter. Misschien geen NES, maar de rennende loodgieter is voor velen de start van hun game carrière. Was het geen Italiaan met een dikke snor? Dan was het vast een blauwe egel. Mijn punt is dat veel van ons nostalgische gevoelens hebben bij oude spelcomputers en precies weten wie er bedoeld wordt met een loodgieter en een blauwe egel.

Misschien speel je zelfs af en toe nog steeds op een oude console. Maar dat maakt voor dit artikel niet uit. We gaan het namelijk over de MiSTer hebben. De MiSTer is de oplossing om oude games van vroeger spelen. Het is een FPGA opensource hardware emulatie project. FPGA staat voor Field-Programmable Gate Array. Dit mag je gelijk weer vergeten hoor. Ik wil verder ook niet teveel uitweiden over hoe dit technisch precies allemaal werkt. In Jip en Janneke taal is het eigenlijk het coderen van hardware gedrag. Je kunt dus via code zorgen dat hardware zich op een bepaalde manier gedraagt.

MiSTer op een CRT TV (NES -Punch-Out!)

Waar gaan we het over hebben?

  • Wat kun je met een MiSTer
  • Verschil met software emulatie
  • Wat heb je nodig om een MiSTer te bouwen
  • Installatie
  • Handige tips

Wat kan ik er mee?

Je kunt met een FPGA PCB board (in dit artikel gebruiken we de DE-10) en een stuk software (in dit artikel gebruiken we de MiSTer software) hardware nabootsen. We gaan ons vooral verdiepen in het nabootsen van spelcomputer hardware. In de praktijk houdt dit in dat je oude spelcomputer hardware kunt nabootsen op moderne hardware. Je kunt de meeste 8 & 16-bit spelcomputers nabootsen. Maar ook de Neo-Geo (24-bit). Je kunt ook nog een aantal arcade boards nabootsen en simpele PC’s, zoals bijv. een Amiga of Apple II.

DE-10 board

Waarom gebruik je niet gewoon emulators en een Rpi of PC?

Simpel. We willen zo dicht mogelijk bij de originele hardware ervaring in de buurt komen. Een Rpi (Raspberry Pi) met bijv. RetroArch is “slechts” software emulatie. Dit houdt in dat de zogenaamde ROM draait op een stuk software. Maar een spelcomputer is meer dan alleen software. De manier waarop er stroom door een apparaat gaat, hoe snel chips draaien en alle andere gekke quirks die er in de hardware gebeuren zorgen ervoor dat een game zich op een bepaalde manier gedraagt. De games via de MiSTer software hoeven niet geëmuleerd te worden maar kunnen rechtstreeks op de hardware draaien. In de praktijk houdt dit in: Geen lag. Gekke glitches of bugs die veroorzaakt worden door hardware zitten ook in de MiSTer. Je hebt dus 100% exact dezelfde game zoals je hem op een originele console zou spelen. Elke console heeft daarom zijn eigen MiSTer core.

Hier kun je een overzicht vinden van alle console cores die op dit moment ontwikkeld zijn: https://github.com/MiSTer-devel/Main_MiSTer/wiki

Menu screenshot cores

Zelf een MiSTer bouwen

Je kunt simpel beginnen. Het enige dat je nodig hebt is een DE-10 Nano board. Dit is de basis van je machine. De DE-10 komt met een stroomadapter en een 8GB Micro-SD card. Meer niet.

SDRAM

Met een standaard board kun je nog niet zo heel veel. Met het standaard board kun je alleen PC-engine en Mega Drive spellen spelen. Voor de andere cores heb je meer SDRAM geheugen nodig. Er zijn 2 smaken die er toe doen, 32mb of 128mb. Met de 32mb kun je bijna alles, maar voor de Neo Geo cores heb je 128mb nodig. Qua prijs zou ik gewoon de 128mb nemen. Je ben dan verzekerd dat alles werkt. Het monteren is simpel, je schuift het reepje SDRAM zo in het geheugenslot. (Let even goed op dat je er hem wel op de juiste manier instopt)

USB add-on

De DE-10 komt standaard met 1 USB aansluiting. Je kunt een USB-hub aansluiten maar dit is wel extra kabels en rommel. De beste oplossing is om een USB add-on PCB aan te schaffen. Deze kun je aan je DE-10 schroeven en je hebt gelijk 6 USB poorten tot je beschikking. Wel zo handig voor het aansluiten van controllers.

Een IO-board:

Deze is niet perse nodig, maar wel erg handig. Het IO-board zorgt ervoor dat je een VGA uitgang en optische audio uitgang tot je beschikking krijgt. Standaard heeft de MiSTer alleen een HDMI uitgang. Wil je hem dus aansluiten op een VGA scherm of CRT televisie is deze module noodzakelijk. Tenzij je een OSSC gebruikt. Maar dat is weer een ander topic. Je hebt nog wel een VGA naar je gewenste uitgang kabel nodig. Ik persoonlijk heb een VGA naar Scart kabel. Want mijn MiSTer is aangesloten op een CRT beeldbuis televisie.

Daarnaast zorgt het IO board voor een fan die de boel koelt, en zitten er 3 hardware knoppen op zodat je de Mister bijv. kunt resetten met een knopje i.p.v. stroom erop en eraf.

Dit zijn in ieder geval de standaard modules die ik toch wel aanraad wil je zelf een MiSTer gaan bouwen.

MiSTer add-ons (IO-board, USB-board, SDRAM, Real Time Clock)

Installatie:

Je hebt alles binnen, de MiSTer heb je helemaal in elkaar gezet. En nu? We beginnen in ieder geval bij het begin met het maken van de SD-card.

Download de laatste MiSTer installatietool voor Windows hier:
https://github.com/MiSTer-devel/SD-Installer-Win64_MiSTer

Stop de Micro SD-card in je PC en run de tool. Het spreekt allemaal redelijk voor zich. De tool gaat een installatie van MiSTer op de SD-card zetten.

Je SD-card is klaar en je stopt hem in je MiSTer.

Pak een toetsenbord en hang hem aan je MiSTer (en sluit je MiSTer natuurlijk aan op een scherm). Zet je MiSTer aan en voila een menu. Druk op de ESC knop, ga naar “System Settings’ en kies ”Scripts”. Nu komt er een waarschuwingsmelding, Maar je weet wat je doet dus je drukt gewoon op “Yes, and don’t ask again”. Dan kies je “Update”. Je MiSTer gaat nu, je verwacht het niet, updaten!

1e scherm na installatie

Next steps:

Je MiSTer start opnieuw op en je kunt nu van alles kiezen. “Console” is de menu optie waar wij ons op gaan focussen.  Maar first things first. Een game controller aansluiten.

Voor nu houden we het even simpel. Ik ga er vanuit dat je een USB game controller hebt. Of het een 8bitdo is of een Xbox controller is, dat maakt even niet uit. Ik zal later nog even uitleggen waarom je vooral wat anders moet kopen!

Plug de controller in een USB poort, druk op de ESC van je toetsenbord, ga naar system settings en kies “Define Joystick Buttons”. Doorloop de vragen en stel je controller in. Lees even goed wat je moet doen qua overslaan van knoppen en opslaan van je settings en je bent klaar.

Games spelen

Zoals iedere brave burger heb je natuurlijk je eigen games gebackupped en daar heb je ROMS van op je computer staan 😉 Haal de Micro SD-card uit je MiSTer en plug hem in je PC met een SD-card reader. Als het goed is kun je op je SD-card komen via Windows File Explorer. Je ziet een overzicht van alle beschikbare cores in aparte mapjes. Maak mapjes aan per console in de root van de kaart en stop in elk mapje de betreffende games die je wilt spelen.

Main menu MiSTer

Stop de SD-card weer in je MiSTer, zet je MiSTer aan, kies “Console” en kies de console die je wilt gebruiken. Kies “Load file *.” En navigeer naar de ROM die je wilt spelen. En voila, je game start op!

That’s it.

Controllers

Nu heb je een machine staan die 100% nauwkeurig hetzelfde is als een echte console, en dan zit je met een USB controller in je handen. Dat kan natuurlijk niet! We willen originele controllers met minimale (of geen) input lag.

Er zijn verschillende oplossingen. En het is er net naar wat je voorkeur is.

SNAC adapters

Een SNAC adapter is een USB adapter die direct met de core communiceert, dit houd in dat je naast de standaard USB latency van 1ms (0.06 farmes) letterlijk 0ms input lag hebt. Dichterbij de originele hardware kun je niet komen. Een SNAC adapter is wel een “lelijke” oplossing. Want je moet namelijk weer een controller adapter aan de SNAC adapter hangen. De SNAC adapter zelf is universeel, maar je zult een controller specifieke adapter aan de SNAC adapter moeten hangen. Je leest het dus al, gerommel.

SNAC USB adapter

USB adapters

Raphnet biedt USB adapters aan met weinig latency. De adapters kunnen ingesteld worden op een minimale latency van 2ms. Je hebt hier dus in totaal een latency van 3ms. De 1ms van de USB port, en de 2ms van de adapter. Voordeel van deze adapters is dat je hem direct in je USB aansluiting plugt en geen extra kabels of adapters meer nodig hebt. Daarnaast zijn ze redelijk betaalbaar. Ongeveer 25 euro voor een 2-player SNES of NES adapter bijv.

Kortom, ga je voor gemak en lage latency dan kies je voor de Raphnet USB adapters, kies je voor de oplossing met de laagste latency dan kies je voor de SNAC oplossing. Maakt latency je helemaal niet uit, gebruik dan gewoon een USB controller die je direct aan de MiSTer aansluit.

Raphnet SNES USB adapter

Hier vind je een nauwkeurig overzicht van de latency op populaire USB controllers:

https://docs.google.com/spreadsheets/d/1KlRObr3Be4zLch7Zyqg6qCJzGuhyGmXaOIUrpfncXIM/edit

Een paar voorbeelden. Een Switch Pro controller heeft gemiddeld genomen rond de 20ms input lag, een Xbox One controller 10ms en een 8Bitdo SN30 Pro 25ms! Zet daar dus tegenover dat een orginele NES of SNES controller i.c.m. een Raphnet USB adapter slechts 3ms input lag heeft, en een SNAC adapter i.c.m een orginele controller dus 1ms.

Latency overzicht controllers

Tot slot:

Het is een redelijk lang artikel geworden en ik heb zeker niet alles tot in detail kunnen uitleggen. Heb je vragen stel ze in de comments en ik ben benieuwd of jullie vaker van dit soort diepere artikelen zouden willen zien? Of vinden jullie deze informatie overbodig omdat je door zelf te zoeken toch ook wel alles vindt? Alle feedback is welkom!

Leuke post? Drop een hartje

Score: 5/5 volgens 3 gamers

Nog geen hartjes. First!

Abonneer
Laat het weten als er
10 Reacties
Meest gestemd
Nieuwste Oudste
Inline feedbacks
Bekijk alle reacties
Dokter Caspari
1 jaar geleden

Tof artikel! Helder en goed beschreven hoor. Ook mooi hoe je piraterij omzeilt om Roms te benoemen in een legale context (met een dikke knipoog verborgen onder een zwart ooglapje dat is :p).

Ik heb trouwens weinig moeite met het feit dat mensen Roms downloaden. Dit komt omdat de legale weg om deze games te verkrijgen ook vrij crimineel genoemd mag worden. 10 of 20 euro betalen voor een retro-game is de normaalste zaak van de wereld, en dan krijg je hem nog digitaal ook. Het illegaal downloaden is diefstal, niets minder dan dat en dat praat ik ook niet goed. Maar dat is het aankopen van sommige ‘geremasterde’ retro-spellen ook, alleen dan is het diefstal van je eigen knip.

Als bedrijven ervoor kiezen nostalgie niet langer uit te buiten, dan ben ik echt wel bereid hun kas te spekken, maar in de meeste gevallen laat ik hun ‘trips tot the past’ links liggen. Zo had ik heel graag de Mario Collectie willen hebben, maar de prijs en het bewust creëren van schaarste hield mij tegen. Ik heb de games thuis gewoon liggen, dus als ik ze wil spelen is de mogelijkheid er gewoon. Dus eigenlijk heb ik Ninty al genoeg geholpen door deze games te kopen, gaan we niet nog eens 60! Euro aan besteden.

MonsterCrab
1 jaar geleden

Wow, wat een uitgebreid artikel. Dit is ook precies wat ik nodig had! Je bent een held SamuraiPizzaCat. Eerst even wat centjes bij elkaar zoeken en dan ga ik me ook eindelijk wagen aan de MiSTer 😀

Luigi1985
1 jaar geleden

Ik zou bijna zweren dat ik hier vanochtend een reactie heb achtergelaten. Misschien ben ik vergeten op de ‘Plaats reactie-knop’ te drukken.

Anyway. Ik vind dit een leuk en leerzaam stuk. Of ik er zelf gebruik van maken, denk ik niet. Mijn ervaring met de virtual console destijds, Nintendo online tegenwoordig en het tijdelijk in huis hebben van de SNES-mini, dat ik deze oude games maar zelden echt lekker uitspeel. Ik speel ze vaak een half uurtje en dan stop ik meestal (enkele uitzonderingen daargelaten) om vervolgens weer naar een hedendaagse game te gaan.

Bovendien heb ik geen PC… Maar wellicht als ik ooit de sterke behoefte voel om met oude klassiekers aan de slag te gaan, dan heb ik in ieder geval een heldere uitleg. Toffe content nogmaals.

xevulutionx
xevulutionx
1 jaar geleden

Mooi artikel en zeer interessant. Ik heb t zelf via de rspi route gedaan.Althans, ik heb dat uitbesteed. Ja er zitten wel wat nadelen eraan maar ik ben wel erg blij met de complete arcadekast hier. De bartop werd compleet geregeld en zelf heb ik er een onderstel op maat bij laten maken. Ik betrap mezelf er alleen wel op dat ik er zeker niet elke maand op speel. De behoefte aan retro komt en gaat met periodes.

EmperorStorky
EmperorStorky
10 maanden geleden

Wat ook een aanrader schijnt te zijn (kan er zelf nog niet over oordelen aangezien ik nog op het hoofd bestandsdeel wacht) is om met een Raspberry Pi bijvoorkeur een 3 A+ model aangezien die qua formaat het beste erbij past, en de MT32-Pi hat een Roland MT32 (MIDI synthesizer) te simuleren wat door een aantal cores wordt ondersteunt (PC, Amiga en o.a. de Atari ST)

EmperorStorky
EmperorStorky
10 maanden geleden
Antwoord aan  SamuraiPizzaCat

Doe ik, ben alleen nog aan het bekijken voor wat de beste oplossing is om het aan mijn Razer Nomma pro speakers aan te sluiten, ipv geluid vanuit de speakers van mijn monitor. En tevens duurt het wachten op verzenden door PostNL helaas al een x aantal dagen vanwege de drukte.

Hier is wel een video van iemand die er een bouwt en het ook demonstreert: https://www.youtube.com/watch?v=GEyNDPc2Bug

EmperorStorky
EmperorStorky
10 maanden geleden
Antwoord aan  SamuraiPizzaCat

Heb het gisteren eindelijk mogen ontvangen en meteen nog een toslink kabeltje gekocht om zo het geluid via mijn pc speakers te laten klinken. En met de huidige wisselkoersen ben je rond de 85 Euro kwijt excl inklaringskosten aangezien de MT32-Pi hat binnen Europa alleen bij een Britse site te koop is.

Wellicht lijkt het vrij veel maar het is het absoluut waard, zeker met de speaker set die ik heb.

EmperorStorky
EmperorStorky
10 maanden geleden
Antwoord aan  SamuraiPizzaCat

Heb geen foto want ik wacht nog op de verticale standaard. Maar zodra ik die heb maak ik inderdaad wel even een foto. Vanwege de drukte bij PostNL duurde het wel vrij lang dat hij in de brievenbus lag.

Ik gebruik hem zelf alleen nu voor de ao486 core, maar ga nog later wel de Amiga core toevoegen.

Qua installatie valt wel mee. MicroSD kaartje naar FAT32 formatteren, zip bestand van GitHub downloaden en het configuratie bestand aanpassen met behulp van deze site https://github.com/dwhinham/mt32-pi/wiki/Configuration-file

Laatst bewerkt 10 maanden geleden door EmperorStorky

Bekijk hier gameplaybeelden van indiegame Glitchpunk

Speciale Xbox-controllers moeten milieuvriendelijker zijn