Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , reacties: 66, views: 24.843 •

Een Amerikaanse ontwikkelaar heeft in JavaScript een Nintendo 64-emulator geschreven, die met hulp van WebGL in moderne browsers kan worden gedraaid. Hij was eerder al verantwoordelijk voor de cross-platform N64-emulator Daedalus.

De n64js-engine van de Nintendo 64-emulator is geschreven in Javascript en de grafische verwerking in de browser wordt verzorgd door WebGL. Het gebruik van WebGL betekent wel dat alleen de nieuwste versies van Chrome en Opera en de laatste builds van Firefox de emulator kunnen draaien. Gebruikers zouden wel zelf voor de rom-bestanden van de games moeten zorgen.

Holden kreeg naar eigen zeggen inspiratie om de emulator te schrijven toen hij een in Javascript geschreven Linux-emulator tegenkwam. De programmeur had verder al ervaring opgedaan met het schrijven van de N64-emulator Daedalus, waarvan de ontwikkeling inmiddels door anderen is overgenomen.

De ontwikkeling van de n64js-emulator verkeert nog in een vroeg stadium. "Het zal nog lang duren voordat het een bruikbaar product is", schrijft Holden op zijn blog. Er kan al met de emulator gespeeld worden, maar er zouden nog veel bugs en snelheidsproblemen zijn.

Super Mario 64 in de n64js-emulator

Reacties (66)

Gaaf, maar zie het voordeel zo snel niet tov een app/programma.
Voornamelijk dat deze apps in een browser afgespeeld kunnen worden, in tegenstelling tot alle programma's die je eerst moet installeren op je pc.
én als alles en iedereen zich aan de standaard houd heb je het grootste voordeel ooit: Crossplatform in 1 taal!

iOS, Android, Windows, Linux en Mac zouden in principe allemaal dezelfde code moeten kunnen draaien.
Laat ik eerlijk zijn, de enige reden dat ik het interessant vind is omdat het wellicht met der tijd zou kunnen werken in een iOS browser, voor de rest is het een beetje een gimmick imho.

Edit:
Even toelichten voor degene waarbij het dubbeltje niet valt. Voor Windows, Mac, Linux en Android zijn N64 emulators beschikbaar zonder dat je je installatie moet hacken/jailbraken. Op iOS is er wellicht eentje beschikbaar maar daar moet je je iPhon/iPad voor jailbraken. Op alle andere platformen zijn al veel efficientere/betere N64 emulatoren, waardoor het imho een gimmick is op die platformen. Ik zou nooit op mijn Windows installatie een browser based emulator gebruiken als daar een betere dedicated client voor is (die er in dit geval gewoon is).

[Reactie gewijzigd door Cergorach op 17 augustus 2012 17:19]

hmm, dus als het in een iOS browser draait is het fantastisch, en anders is het een gimmick?

ik zal het niet roepen...
Waarschijnlijk omdat Apple n64 emulators niet toestaat in de app store. Omde eenvoudige reden dat het inbreuk maakt op copyright, wat overigens een redelijke regel is :P
hmm, dus als het in een iOS browser draait is het fantastisch, en anders is het een gimmick?
Nee, iOS is zelf al een gimmick ;)
Ondersteund door:
Waarschijnlijk omdat Apple n64 emulators niet toestaat in de app store.
Overigens doet een emulator geen inbreuk op copyright, het onrechtmatig gebruik ervan wel. Vergelijking zoals messen verkopen.
Vergelijkbaar met een auto, hij is bedoeld om je netjes mee aan de verkeersregels te houden maar als jij er vervolgens voor kiest om te hard te rijden is de auto niet opeens illegaal...

Hoewel volgens de letter van de wet het nog altijd illegaal is om een ROM te gebruiken, zelfs als je de originele game bezit. De stelregel dat je het originele product moest bezitten is bedacht als verweer van de makers van Emulators indertijd, maar in de praktijk lijkt het redelijk te kloppen met de policies van de rechthebbenden.
Als je de rom zelf maakt uit een game die je zelf bezit (en in je bezit houd, niet doorverkoopt) dan is het wel legaal. Kopie voor thuisgebruik :)

En ja, ik heb de apparatuur om snes en n64 roms te back-uppen.
Apple laat geen apps toe die op hunzelf weer code kunnen executen. Wat een Emulator dus doet. Heeft niks met copyright te maken.
Betekend dus dat Android dichterbij een 'Echt' OS staat. Evenals filebrowser en apps van buitenaf installeren en multitasken en informatie sharen tussen verschillende apps waarbij het niet uitmaakt bijna wat voor data.
Nee, het OS heeft een andere filosofie, welke bij Android meer lijkt op het klassieke systeem. Dat heeft weinig met de 'echtheid' van een OS te maken.
Volgens mij lees jij wat je wil lezen.

Hij zegt niet dat het fantastisch is, hij zegt ook niet dat hij het fantastisch vind.
Het enige wat hij aangeeft het voor hem op iOS interessant is.

Overigens ben ik het wel met hem eens, het lijkt mij uitermate geschikt voor mobile devices.
Ik heb zelf een iControlpad, daarmee is het ideaal om emulators te spelen.
Als dit via een mobile browser kan zonder te jailbreaken, rooten etc, why not?

[Reactie gewijzigd door Typecast-L op 17 augustus 2012 22:41]

hmm, dus als het in een iOS browser draait is het fantastisch, en anders is het een gimmick
Nee.

Onder Android zijn er al emulators die goed werken, waarschijnlijk veel beter dan een browser-oplossing. Om het dan toch via een browser te doen is dus een gimmick.

Onder iOS is er geen manier om een N64 te emuleren. Omdat het dus (waarschijnlijk) niet is toegestaan, is een browser-oplossing de enige oplossing.

En dus is de opmerking geen fanboyisme.
Crossplatform in 1 taal!
C en C++ zijn op zich net zo cross platform. Javascript heeft alleen als 1 groot nadeel, het is bagger traag.
Het voordeel is dat je het op elk platform kan spelen, zag afgelopen week nog een vergelijkbare GameBoy Color emulator voorbij komen die geschreven is in HTML5.

http://gamecenter.grantgalitz.org/iphone/
Dat is gaaf zeg... Beter dan die slechte prank van Quake2 in WebGL. Ik hoop echt dat er wat gedaan wordt aan de performance van JS, met name voor dit soort 3D Canvas games.

Het is momenteel zo goed als onmogelijk om goede 3D games te maken in WebGL ivm de snelheid. Ik gok dat deze PC die deze emulatie draait een vrij zware bak is die staat te ploeteren om dit te renderen :)
Nice, Dat idee had ik ook al een tijd :). mooi dat iemand het uit heeft gevoerd :P
Ja, hij was net op tijd!
Leuk.. maar zie het filmpje eens. Onspeelbaar traag. Verwacht ook niet dat er veel verandering in zal gaan komen.
Heb je het nieuwsbericht wel helemaal gelezen? Volgens de ontwikkelaar is nog in een heel vroeg stadium, door bugs en snelheidsproblemen. Het is daarom logisch dat het erg traag is.

Daarnaast is WebGL nog niet ver genoeg om 3D games in te maken door de lage snelheid.
WebGL is gewoon OpenGL ES 2.0 met javascript bindings. Ik heb er zelf wat mee geexperimenteert en met de performance is niet veel mis. Je hebt natuurlijk wat extra overhead en javascript blijft niet de snelste taal om een spel in te maken, maar voor simpele browser games is het echt prima te doen.

Het enige nadeel is dat Google ervoor heeft gekozen om zijn implementatie in Chrome Direct X als back-end te gebruiken ipv OpenGL. Hierdoor zijn er nogal wat verschillen tussen de GLSL implementaties waardoor je bij het maken van complexe shaders rekening moet houden met minstens 2 verschillende back-ends.
Ja, maar feit blijft dat het emuleren van een 64-bit RISC CPU van 94mhz sowieso veel kracht vereist, en dat Javascript daar niet het geeigende platform voor is... dan kan je nog zoveel doorontwikkelen, even speelbaar als de native versie zal het nooit worden.
Ik heb ooit een N64 emulator op een P3 450 gehad, die draaide een stuk beter dan dit. Het is overigens niet alleen WebGL dat nog niet ver genoeg is. Het is met name Javascript dat nooit net zo efficiënt gaat werken als C/C++. Javascript is o.a. traag door het feit dat het zo flexibel is. Super snel en super flexibel is eigenlijk geen bestaande combinatie. Wat dat betreft zou er best wel eens een 2e web taal bij mogen komen die meer de kant van C++ op gaat.
Google heeft al zijn eigen taal ontwikkelt, maar het slaat nog niet erg aan.
http://en.wikipedia.org/wiki/Dart_(programming_language)
Alle emulators zijn in het begin traag. Toen de eerste n64 emu uit kwam moest je ook een monster van een systeem hebben en een voodoo2 kaart (kent u die nog? ;)) om het nog maar een beetje te kunnen spelen.
Dit vergeten mensen nogal snel, vaak word over het hoofd gezien dat zo'n console op papier misschien geen imponerende specs heeft, maar de software die er op draait is zwaar geoptimaliseerd en heeft niet met drivers e.d. te maken, waardoor je veel optimalisatie moet doen om op een PC dezelfde performance te krijgen. De eerste versie is dus vaak meer een 'proof of concept' dan echt een bruikbare applicatie.

Hoe het tegenwoordig zit weet ik niet maar dit is gelijk de reden dat emulatoren vroeger niet gelijk alle games ondersteunden: in de cartridges zat ook weer specifieke hardware en iedere game maakt vaak op een specifieke manier gebruik van de hardware van de console. Dit moet dus 'handmatig' geoptimaliseerd worden. Zodra een bepaalde chip voor één game nagebootst is werkt hij meestal ook wel voor de andere games, maar het duurt dus wel even voordat alle chips ondersteund worden.

Ik vermoed dat het met disc-based games nog steeds vergelijkbaar is, ook die games zullen de hardware op een specifieke manier aanspreken en gebruiken en dus moet die specifieke manier ook door de emulator ondersteund worden.
Waarom niet, Project64 was eerst ook heel traag, tegenwoordig valt het best mee.
Dat er snelheidsproblemen zijn, is te zien in de video. Maar dit is wel een leuk idee, zo zouden oude spellen nog steeds gespeeld worden in moderne browers.

[Reactie gewijzigd door Martindo op 17 augustus 2012 17:04]

Dat kan sowieso al, het vernieuwende hieraan is dat het in een browser is en niet een standalone applicatie.
Leuke benchmarking test voor browsers :P

SuperMario Bench
Zou de performance beter zijn geweest als hij het in Silverlight had geschreven?
Nee. Silverlight is / wordt depreciated.
én het zou niet crossplatform zijn. Lang leve HTML5! Ben zelf ook druk bezig een MMORPG te schrijven in HTML5, met WebSockets en een nodejs server. Werkt super, op Android, iOS, windows en linux.
Ware het niet dat HTML5 nog steeds in ontwikkeling is EN je nog steeds te maken hebt met de verschillende browsers die niet alles ondersteunen..
Yep, de perfomance zou vele malen beter zijn geweest..
Maar het nut om deze in silverlight te schrijven is ver te zoeken omdat zoals RevenNL het al zegt, silverlight is dead..
Nette ontwikkeling.

Voor iets wat geschreven is om in webbrowsers te draaien, vind ik de performance eigenlijk al vrij aardig, het is nog niet zoals op desktops, maar ik zie wel mogelijkheden voor dit in. Voor je het weet heb je over een paar jaar een PS2 emulator in je browser :).(of een whatever console in je browser.)

Het voordeel is ook zoals hierboven dat het crossplatform is, dus je hoeft als ontwiikkelaar bijna niet over na te denken of het op een bepaalde platform werkt, tenzij je gaat kijken naar browsers...

Al met al, ik zie hier wel voordeel in, als dit kan, kan er nog :)
Super!! Ff op je werk pc. Zelda spelen.
Dit keer zonder emulators en roms.
Waardoor het veel makkelijker is voor bedrijven als Nintendo om dit soort zaken aan te pakken. Het is makkelijker een site offline te laten halen wegens inbreuk op auteursrechten dan om jan-met-de-pet met een emulator aan te pakken.
Yep, als nintendo e.d. slim zijn kopen ze de emulator en laten ze mensen een euro betalen om Pokemon Red te spelen op hun server.
Het is maar een scriptje, je hebt geen hele site nodig. Met een beetje mazzel kun je het scriptje gewoon lokaal draaien door een .html te openen.
Het is eigenlijk waarschijnlijker dat je zelf nog altijd de rom zal moeten leveren, hoewel er misschien wel websites zullen opstaan die ze gelijk mee aanbieden zullen die inderdaad véél makkelijker aan te pakken zijn dan de emulatoren zelf, dus ik vermoed dat veel mensen dat risico niet zullen willen lopen.
Dit soort dingen zijn echt wel f*cking briljant.. Niet alleen het idee, maar dat je het ook daadwerkelijk gaat implementeren.. Bijzonder knap gedaan! Ik zou zo iemand wel in mijn dev-team willen hebben (tenzij hij stieken die emulator op het werk heeft gemaakt, natuurlijk :P)
Waarom precies? Een emulator is knap werk, maar dit is geenszins de eerste emulator te wereld... Ja, het is in javascript, maar dat is slechts een andere taal. Normaliter worden ze in C of C++ geschreven, dus als iemand het doet in Delphi ofzo, is het ook opeens briljanter dan de rest?

[Reactie gewijzigd door _Thanatos_ op 17 augustus 2012 17:57]

Ach, het gaat om het idee denk ik.
Ouwe games spelen in je browser is vet!
Maar jammer dat het nog zo hapert en dat je zelf de roms moet zoeken.
Dus nog een lange weg te gaan voor je dat allemaal online kan spelen denk ik.
Ach, je kunt met iedere taal wel dingen van een webserver downloaden. Ook dat is niets speciaals, toch... Het feit dat je hierbij slechts een url in hoeft te tiepen is semantiek. Een appje downloaden doen we allemaal, zowel op pc als op draagbare apparaatjes. Bovendien werkt het maar in één browser, dus als je die niet hebt, moet je die toch eerst nog installeren.
Zoals ze zo mooi zeggen: "Rome was not built in a day". Het eerste stapje is gezet en met de gebruikte technologie zal de applicatie uiteindelijk cross-platform en cross-browser werken. Dat is wel degelijk interessant, al is het alleen maar als proof-of-concept. Voor niet-windows gebruikers is het zeer interessant als men dit soort technieken meer gaat toepassen, dan kunnen zij de games immers ook gewoon spelen.

Als ik me niet vergis zijn er al een aantal games die hier mee bezig zijn, zoals Settlers Online bijvoorbeeld. Als er genoeg games deze weg volgen of gewoon cross-platform ontwikkelen dan zijn we eindelijk eens van die verplichting af om Windows te gebruiken om te gamen...een mens mag toch dromen ;)
Sorry hoor, maar het idee is verre van brilliant aangezien dit niet de eerste console emulator is die in javascript is geschreven..

Op dit item kan niet meer gereageerd worden.



Populair:Apple iPhone 6Samsung Galaxy Note 4Apple iPad Air 2FIFA 15Motorola Nexus 6Call of Duty: Advanced WarfareApple WatchWorld of Warcraft: Warlords of Draenor, PC (Windows)Microsoft Xbox One 500GBGrand Theft Auto V

© 1998 - 2014 Tweakers.net B.V. Tweakers is onderdeel van De Persgroep en partner van Computable, Autotrack en Carsom.nl Hosting door True

Beste nieuwssite en prijsvergelijker van het jaar 2013