Med 8-bitarskonsolen NES introducerade sig den japanska speljätten Nintendo på allvar i västerländska hem. Uppföljaren Super Nintendo, populärt förkortad till SNES, släpptes i Japan år 1990 och blev en än större framgång. Dess tekniska kapacitet utökades över tid med hjälp av specialkretsar i spelkassetter. Den mest kända av dessa är SuperFX-kretsen som bland annat möjliggjorde 3D-grafik i spelet Star Fox.

SuperRT-5.jpg

Om SuperFX var det häftigaste spelpubliken kunde uppleva runt mitten av 90-talet är ray tracing det mest avancerade, och mest krävande, som kan upplevas år 2020. Spelutvecklaren Ben Carter förenar konceptet med specialkretsar för SNES med ray tracing i ett projekt han passande nog kallar SuperRT. Här används processorn i spelkonsolen för att hantera spellogik, medan en programmerbar krets (FPGA) i spelkassetten renderar ray tracing-grafik.

Konfigurationen består av en Super Nintendo-konsol där chassits övre del avlägsnats för att lämna utrymme till kabeldragningen, men hårdvaran är i övrigt inte modifierad. På spelsidan har Ben Carter tagit kretskortet (PCB) från ett inhandlat SNES-spel och avlägsnat minneskretsen (ROM) där spelet lagras. I dess ställe används kretskortet DE10-Nano där FPGA-kretsen Cyclone V huseras.

SuperRT-1.jpg
SuperRT-2.jpg
SuperRT-3.jpg
SuperRT-4.jpg

FPGA-kretsen är bestyckad med tre programmerbara kärnor som beskrivs som specialiserade CISC-kärnor, vilket innebär att de kan utföra komplexa instruktioner per klockcykel. Det används för att låta kärnorna beräkna hur ljusstrålar korsar varandra (ray intersect), och grafiken skapas med hjälp av specialutformade kommandon. Renderingen utförs helt och hållet med ray tracing och ingen traditionell rastrering ska vara inblandad.

Fyra ljusstrålar beräknas per pixel och utifrån detta beräknas enskild skuggning och reflektioner. Ytor har reflekterande egenskaper, och det är möjligt att modifiera dessa egenskaper programmatiskt. Färgen för pixlarna beräknas med en av FPGA-kretsens kärnor och en annan kärna exekverar grafiken. Resultatet laddas från SNES-konsolen till en 4 KB stor minnesbuffer, och animationer utförs genom att skicka modifierande kommandon till denna buffer.

När en bildruta har renderats används en konverteringsmodul för bild (PPU) för att lämna över den renderade bildrutan till SNES-konsolens grafikdel (VRAM). Bildrutan skalas då ned till de 256 samtidiga färger som stöds i PPU-delen. Upplösningen landar i 200 × 160 pixlar och renderingstekniken medger en högsta bilduppdatering om 30 FPS. Slutresultatet hamnar dock närmare 20 FPS på grund av begränsningar i SNES-hårdvaran.

Avslutningsvis lovar Ben Carter att framöver ge en djupare insikt i hur de olika komponenterna i projektet fungerar. Redaktionen lyfter på hatten för en kreativ metod för att återigen låta Super Nintendo briljera visuellt, tre årtionden efter den först sjösattes på den japanska hemmamarknaden.

Har du fina minnen från Super Nintendo-tiden, eller tankar om det Ben Carson lyckats få till med SuperRT-projektet? Dela med dig i kommentarerna!