Het project Demoscene-recomp maakt het mogelijk om klassieke DOS-demo's, zoals Unreal, Second Reality, Crystal Dream II en Stars: Wonders of the World, direct in de browser te draaien.
Het technische proces omvat:
Het registreren van x86-instructies via een emulator.
De vertaling van deze instructies en timing naar C-code.
Compilatie naar WebAssembly, inclusief hardwaremodellen voor de timer, VGA-kaart en Sound Blaster.
Validatie van het resultaat tegen de originele emulator.
Omdat de demo's oorspronkelijk op 70 Hz draaiden, wordt aangeraden deze op schermen met een verversingssnelheid van 70 Hz of hoger te bekijken. Het project is open source beschikbaar op GitHub.
Demoscene-recomp
Beschikbare demo's
Unreal – Future Crew (1992)
Second Reality – Future Crew (1993)
Crystal Dream II – Triton (1993)
Stars: Wonders of the World – NoooN (1995)
Hoe het werkt
De originele DOS-code van elke demo is instructie voor instructie opnieuw gecompileerd om direct in de browser te kunnen draaien. Dit proces werkt als volgt:
De demo wordt uitgevoerd op een x86-emulator die elk blok code dat de CPU daadwerkelijk uitvoert, gedurende de gehele demo registreert.
Deze registratie wordt vertaald naar C: de originele instructies, één voor één, inclusief de exacte cyclustiming van de geëmuleerde machine.
De C-code wordt samen met modellen van de hardware waarmee de demo communiceert (de timer, de VGA-kaart en de Sound Blaster) gecompileerd naar WebAssembly.
Het resultaat wordt event voor event gecontroleerd tegen de emulator: elke interrupt, poorttoegang en frame op hetzelfde moment van de geëmuleerde tijd.
De eigen loaders, muziekspelers en effecten van de demo's werken precies zoals ze dat deden in 1992 en 1993; alleen de hardware is gemodelleerd. Omdat de demo's oorspronkelijk op VGA bij 70 Hz draaiden, ogen ze het vloeiendst op een scherm met een verversingssnelheid van 70 Hz, 140 Hz of hoger.
Het project is beschikbaar op GitHub.
Credits
Unreal en Second Reality zijn gemaakt door Future Crew.
Crystal Dream II is gemaakt door Triton.
Stars: Wonders of the World is gemaakt door NoooN.
Alle bovengenoemde producties zijn uitgebracht als freeware. De originele releasebestanden worden ongewijzigd geserveerd, aangezien de demo's deze tijdens de uitvoering (run time) lezen.
Klassieke PC-demoscene-producties die native in de browser worden uitgevoerd.
Demoscene-recomp
Beschikbare demo's
Unreal – Future Crew (1992)
Second Reality – Future Crew (1993)
Crystal Dream II – Triton (1993)
Stars: Wonders of the World – NoooN (1995)
Hoe het werkt
De originele DOS-code van elke demo is instructie voor instructie opnieuw gecompileerd om direct in de browser te kunnen draaien. Dit proces werkt als volgt:
De demo wordt uitgevoerd op een x86-emulator die elk blok code dat de CPU daadwerkelijk uitvoert, gedurende de gehele demo registreert.
Deze registratie wordt vertaald naar C: de originele instructies, één voor één, inclusief de exacte cyclustiming van de geëmuleerde machine.
De C-code wordt samen met modellen van de hardware waarmee de demo communiceert (de timer, de VGA-kaart en de Sound Blaster) gecompileerd naar WebAssembly.
Het resultaat wordt event voor event gecontroleerd tegen de emulator: elke interrupt, poorttoegang en frame op hetzelfde moment van de geëmuleerde tijd.
De eigen loaders, muziekspelers en effecten van de demo's werken precies zoals ze dat deden in 1992 en 1993; alleen de hardware is gemodelleerd. Omdat de demo's oorspronkelijk op VGA bij 70 Hz draaiden, ogen ze het vloeiendst op een scherm met een verversingssnelheid van 70 Hz, 140 Hz of hoger.
Het project is beschikbaar op GitHub.
Credits
Unreal en Second Reality zijn gemaakt door Future Crew.
Crystal Dream II is gemaakt door Triton.
Stars: Wonders of the World is gemaakt door NoooN.
Alle bovengenoemde producties zijn uitgebracht als freeware. De originele releasebestanden worden ongewijzigd geserveerd, aangezien de demo's deze tijdens de uitvoering (run time) lezen.
Zichtbare categorieën
Kies welke categorieën je wilt zien.
Over deze site
Waarom Tech-update?
Tech-update is ontstaan omdat ik merkte dat ik dagelijks veel verschillende websites moest bezoeken om interessant technieuws te vinden. Dat kon efficiënter.
Hoe werkt het?
Meerdere keren per etmaal gaat mijn zelfgebouwde AI-agent op zoek naar interessante artikelen op blogs en nieuwssites.
Vindt hij iets relevants, dan wordt het artikel naar het Nederlands vertaald en op Tech-Update geplaatst.
Van ieder artikel maakt de AI ook een korte samenvatting. Zo kun je snel bepalen of het de moeite waard is om het volledige artikel te lezen.
Bij ieder artikel staat altijd een link naar de oorspronkelijke bron (vaak een Engelstalige website).
Artikelen kun je bewaren als favoriet, vastzetten in de zijbalk of terugvinden via de zoekfunctie.
In de instellingen (tandwielikoon rechtsboven) geef je aan in welk soort nieuws je geïnteresseert bent.