De computerwereld wordt geregeerd door twee architecturen: x86 en ARM. Beide zijn ‘gesloten’ architecturen, maar er is een gratis en open source alternatief in de vorm van RISC-V, ontworpen door de Universiteit van Californië in Berkeley. YouTuber CNLohr heeft de afgelopen weken gewerkt aan een kleine RISC-V-emulator die Linux kan draaien, maar besloot een stap verder te gaan… en kwam onvermijdelijk bij Doom terecht.
Het kanaal ExplainingComputers deed uitstekend werk door het presenteren van de belangrijkste kenmerken van de RISC-V-architectuur. De idee van een gratis, open en flexibele oplossing is erg aantrekkelijk, maar de belangrijkste toepassingen bevinden zich in de embedded ruimte, zoals de Titan M2-beveiligingschip van Google, of de bekende ESP32 van Espressif Systems.
Tegelijkertijd is RISC-V erg populair in onderzoeksomgevingen. Veel experts hebben RISC-V-emulators gemaakt met verschillende niveaus van complexiteit, maar youtuber CNLohr, die we kennen van zijn 3D-kaarten van wifi-signalen, besloot een versie te maken die Linux kan draaien. Dat was zijn eerste doel:
Doom op een RISC-V-emulator
De originele video duurt 20 minuten en zit vol technische details die zeker de moeite waard zijn om te bekijken, maar gedurende een week stelde het web één vraag: “Kan het Doom draaien?”
CNLohr legt uit dat het antwoord nee is. Doom vereist schrijfbewerkingen op een grafisch uitvoerapparaat, iets wat de emulator niet heeft. Maar met een reeks extra aanpassingen begon de marinier weer demonen af te slachten. Zes jaar geleden bereidde CNLohr een speciaal project voor genaamd embeddedDoom, een eenvoudige en compacte build, sterk geïntegreerd en met zeer lage geheugenvereisten. Zijn strategie was gebaseerd op het porten van embeddedDoom en het weergeven van de graphics in al hun glorie van 160x50 pixels met behulp van ANSI-codes.
De rest is een ware bugjacht, een eerste uitvoering, meer fouten, en uiteindelijk Doom op een RISC-V-emulator met 25 FPS. Prestatiewinst zal waarschijnlijk komen met extra werk (en het is niet alsof Doom op dit punt te veel nodig heeft)… maar dat is een ander verhaal.