Świat informatyki rządzi się dwiema architekturami: x86 i ARM. Obie są architekturami „zamkniętymi”, jednak istnieje darmowa i otwartoźródłowa alternatywa w postaci RISC-V, zaprojektowana przez Uniwersytet Kalifornijski w Berkeley. YouTuber CNLohr spędził ostatnie tygodnie pracując nad małym emulatorem RISC-V zdolnym do uruchomienia Linuksa, ale postanowił pójść o krok dalej… i nieuchronnie dotarł do Dooma.

Tworząc emulator RISC-V… żeby zagrać w Dooma
Doom RISC-V

Kanał ExplainingComputers wykonał świetną robotę, przedstawiając najważniejsze cechy architektury RISC-V. Idea darmowego, otwartego i elastycznego rozwiązania jest bardzo atrakcyjna, ale jego najważniejsze zastosowania dotyczą układów wbudowanych, takich jak układ zabezpieczeń Titan M2 od Google czy słynny ESP32 z Espressif Systems.

Jednocześnie RISC-V cieszy się dużą popularnością w środowiskach badawczych. W rzeczywistości wielu ekspertów stworzyło emulatory RISC-V o różnym poziomie złożoności, ale youtuber CNLohr, którego pamiętamy z jego trójwymiarowych map sygnałów WiFi, postanowił stworzyć wersję zdolną do uruchomienia Linuksa. To był jego pierwszy cel:

Doom na emulatorze RISC-V

Oryginalny film ma 20 minut wypełnionych technicznymi szczegółami, które zdecydowanie warto przejrzeć, ale przez tydzień sieć zadawała tylko jedno pytanie: „Czy uruchomi Dooma?”

CNLohr wyjaśnia, że w pierwotnej formie odpowiedź brzmi nie. Doom wymaga wykonywania operacji zapisu na wyjściowym urządzeniu graficznym, czego emulator nie posiada. Jednak dzięki serii dodatkowych poprawek, marine znów zaczął eliminować demony. Sześć lat temu CNLohr przygotował specjalny projekt o nazwie embeddedDoom, prostą i kompaktową kompilację, wysoko zintegrowaną i o bardzo niskich wymaganiach pamięciowych. Jego strategia opierała się na przeniesieniu embeddedDoom i prezentacji grafiki w całej okazałości 160x50 pikseli za pomocą kodów ANSI.

Reszta to prawdziwe polowanie na błędy, początkowe uruchomienie, kolejne błędy i w końcu Doom na emulatorze RISC-V przy 25 FPS. Poprawy wydajności prawdopodobnie nadejdą wraz z dodatkową pracą (a w tym momencie Doom raczej tego nie potrzebuje)… ale to już inna historia.