Modder krijgt Doom werkend op RF-module uit IKEA Trådfri-lamp - update

Een modder heeft de eerste Doom-game uit 1993 geport naar een smartlamp van IKEA. Een YouTube-gebruiker genaamd next-hack kreeg de game werkend op de RF-module uit een IKEA Trådfri GU10-rgb-lamp.

Next-hack toont in een video hoe hij de MGM210L-module van Silicon Lab gebruikt om de iconische shooter te spelen. Deze RF-module beschikt over een Cortex-M33-core die op 80MHz draait. Daarbij beschikt de chip over slechts 108kB aan ram.

De originele uitgave van Doom vereiste al 4MB aan geheugen. waardoor next-hack Doom flink moest aanpassen om het geheugengebruik te beperken. Hij gebruikte hiervoor de Game Boy Advance-port van doomhack als basis. De module had ook onvoldoende opslagcapaciteit. De modder voorzag de module daarom van externe opslag in de vorm van extra SPI-flashgeheugen.

De IKEA-lamp in kwestie heeft uiteraard geen invoerapparatuur of scherm. De modder heeft daarom de RF-module uit de lamp gesloopt, en deze vervolgens aangesloten op een breakout board met een zelfgemaakte controller. Via datzelfde breakout board sloot next-hack de Silicon Lab-chip aan op een 1,8"-scherm met een resolutie van 160x128 pixels.

Daarmee kreeg de modder de game draaiende op een redelijk stabiele framerate van 30fps. De game biedt onder andere ondersteuning voor audio-effecten en alle shareware-maps. De muziek van Bobby Prince ontbreekt in de IKEA Trådfri-versie van het iconische schietspel. Ook is de multiplayer van Doom niet speelbaar op de smartlamp.

Next-hack heeft meer uitgebreide details over zijn project gedeeld op HackADay, waar hij onder andere ingaat op zijn hardwarekeuzes en het aanpassen van de Doom-broncode. De Doom-port voor de IKEA-lamp staat bovendien op GitHub, zodat iedereen dit project eventueel na kan bouwen.

Update, dinsdag 10:16: Het project lijkt inmiddels in zijn geheel offline te zijn gehaald. De YouTube-video staat momenteel als privé aangemerkt en de GitHub- en HackADay-pagina's zijn ook verdwenen. Het is niet duidelijk waarom dit is gebeurd.

Doom op IKEA TrådfriDoom op IKEA TrådfriDoom op IKEA Trådfri

Door Daan van Monsjou

Redacteur

14-06-2021 • 20:24

88 Linkedin Whatsapp

Submitter: Lrrr

Lees meer

Reacties (88)

88
88
42
6
0
31
Wijzig sortering
Blijkbaar zonet offline gekomen, zowel de github pagina als de YT video als het Hackaday artikel...

Forked: https://github.com/marciopocebon/MG21DOOM

[Reactie gewijzigd door geoffrey.vl op 15 juni 2021 09:09]

Blijkbaar is er 'een verzoek' binnengekomen om alles te verwijderen..
Sorry I had a request to remove this post and all public material :(
https://www.reddit.com/r/...tm_medium=web2x&context=3

[Reactie gewijzigd door michaelkamen op 15 juni 2021 15:17]

Zal IKEA wel zijn geweest. Vervelend zeg.
Die fabrikanten die modders tegenwerken zijn mijn inziens vooral hun eigen naam aan het zwartmaken.
Het lijkt wel overal op het internet zijn weggevaagd. Reddit posts van gisteren van inmiddels verwijderde accounts, anders nieuwssites met een 404. Hmmmm wie zou er boos zijn geweest?
De link van next-hack.com in de github wiki is gelukkig ook nog te bezichtigen via archive.org: https://web.archive.org/w...-to-an-ikea-tradfri-lamp/

Heel gaaf project. Ook erg mooi om te zien hoe anderen DIY projecten aanpakken. Dat is vaak wel een goede inspiratiebron voor mijn eigen projecten. :)

[Reactie gewijzigd door InjecTioN op 15 juni 2021 09:38]

Hier is nog een foto van het eindresultaat.
De IKEA-lamp in kwestie heeft uiteraard geen invoerapparatuur of scherm.
Hoezo dat niet? Een lamp is een scherm. :+ Ja okee, de resolutie is met 1x1 pixels een beetje aan de lage kant, maar goed, daarvoor zit er een rf-module in natuurlijk: met een boel lampen samen kun je een scherm met een hogere resolutie opbouwen!
DPI van een lamp is ook niet heel groot :+
DOOM was zo'n spel waarvoor je besloot dat je 386DX computer een upgrade naar nieuw mainboard + 486DX-100 of liever nog een Pentium op 66 of 75 Hz benodigde.

Toch grappig dat zo'n game dus nu, zo'n kwart eeuw later, op zulke 'simpele' hardware kan draaien.
Dat is eigenlijk het punt. Zo "simpel" is die hardware dus helemaal niet. Deze CPU draait op 80 MHz 32 bit processor met (optioneel) floating point pad.
Grote limitatie hier is het kleine geheugen. Zoals je waarschijnlijk weet hebben we op de pc al decennia lang minimaal 640k en Doom had dus minimaal 4M nodig. Ik moet nog kijken hoe deze modder het precies heeft gedaan, maar Doom draaien op 100k is best knap (nu is modern geheugen en opslag wel vele malen sneller dan vroeger, dus dat is misschien de truc:swappen)
Vandaar ook dat ik aanhalingstekens heb geplaatst bij 'simpele' ;)
Ik weet nog dat het laatste level vaak crashte op de 4MB PC van mijn vrienden. Ik kocht er dus een met 8MB en dat werkte stabiel. Doom verkocht PC's!
Niet het volledige spel, zo ontbrak de muziek, en was niet de volledige wad geladen.
Toch. 100k tov 4/8M... dat is een factor 40-80. Muziek is daar niet genoeg voor.
En niet de hele wad maakt niet veel uit. Want je speelt niet alle levels tegelijk.
Wolfenstein speelde anders prima op 486SX-25 of e.d. Compact programmeren doen we vrijwel niet meer. Had een huisgenoot die veel met 16k 'demo's / intro's' deed. Allerlei ingewikkelde effecten met geluid in max 16kB file.

Controller is op grote lijnen vergelijkbaar met de ESP32 zo te zien (https://esp32.com/viewtopic.php?t=5093).
Als je dan bijvoorbeeld naar .kkrieger kijkt, een spel van 96 Kilobyte groot, dat is ook de moeite.
https://web.archive.org/w....theprodukkt.com/kkrieger
Wow alleen die eerste screenshot is al 58,9KB :D
Wolfenstein speelde nog prima op een 286, maar dat is dan ook een compleet andere engine.
Ik kon op mijn 386SX-25 DooM spelen, maar dan moest ik wel die low-res mode spelen om fatsoenlijk te spelen. :)
In grote lijnen vergelijkbaar als een Samsung Galaxy S21+ en een iPhone 12 misschien of een Volkswagen UP! en Toyota Aygo, en dan is zo'n uitspraak natuurlijk een open deur in trappen. Qua componenten komt eigenlijk niets overeen. Andere CPU, andere wifi module, ander geheugen, etc.
Een ESP32 is een leuk allround ontwikkel/PoC/Hobby controller. Vaak niet erg efficient voor massaproductie applicaties zoals Tradfri. Als thuis hobbyist is zo'n ESP32 natuurlijk wel een van de meest aangewezen controllers om zelf een soortgelijke oplossing te maken, is dat waar je op doelde met je uitspraak?

[Reactie gewijzigd door Razwer op 15 juni 2021 06:57]

Wolfenstein speelde anders prima op 486SX-25 of e.d. Compact programmeren doen we vrijwel niet meer. Had een huisgenoot die veel met 16k 'demo's / intro's' deed. Allerlei ingewikkelde effecten met geluid in max 16kB file.

Controller is op grote lijnen vergelijkbaar met de ESP32 zo te zien (https://esp32.com/viewtopic.php?t=5093).
Maar Wolfenstein 3D was ook een volle generatie ouder dan DOOM, hè. Die had ik inderdaad zeer soepel draaiend op de AMD 386DX-33 met de Tseng Labs ET4000A videokaart in een whopping 1024x768 resolutie :Y) Bij DOOM kon (en moest) je het speel window verkleinen tot (ik meen) 640x480 om zo nog iets van framerate over te houden.
Wolf3D en Doom gingen helemaal niet tot 1024x768, daarvoor waren deze spellen veel te oud.
In die tijd was 320x240 en 640x480 de max.
Zelfs DukeNukem 3D wat al veel nieuwer was ging maar tot max 800x600.

Om Doom op een 386 te kunnen spelen moet dat een resolutie zijn geweest van 300x200 ongeveer.
640x480 resolutie spellen kan een 386 niet eens aan daar heeft een 486 DX2 al erg veel moeite mee.

640x480 was toen de 4K resolutie van nu zeg maar.
1024x768 spellen was meer richting Windows 98.

[Reactie gewijzigd door mr_evil08 op 3 juli 2021 17:53]

Gebeurt nog steeds, maar geluid en high res texturen nemen tegenwoordig veel meer ruimte in.
Dit is een Gameboy versie, een stuk lichter dus.
En toch is de Doom GBA versie een port van de Jaguar versie. De Jaguar had één van de beste Doom ports. Ondanks dat de Jag geen échte 64-bit machine is, was het met zijn Tom en Jerry CPU's een krachtig apparaat. Om dat vervolgens - min of meer - te porten naar GBA en nu dus op deze manier werkend te zien, ik vind het knap en bovenal heel bijzonder. En leuk :)
Klopt. Tom en Jerry waren beide 32 bit RISC processors, naast de Motorola 68000 main CPU, die ook 32 bits is. Atari had ze d.m.v. een 64 bits bus aan elkaar geknoopt en voila, daar is je 64 bit console ;)
Het geeft ook aan hoe compact en geavanceerd de hardware is geworden. Mijn 486 paste net onder mijn bureau destijds.
Precies dit. Mijn oude shorewall (inbel server + firewall voor ons thuisnetwerk in 2001 al) was een toen al afgedankte 486. Er draaide van alles op. Nu hangt je hele huis dus vol met best capabele hardware, voor hackers een paradijsje
Niet alleen hackers vormen een risico een grote zone storm en alles ligt eruit..
Ik denk dat je thuis netwerkje wel het minste van onze problemen zijn bij een grote zonne storm.
in het verleden is de stroom weer redelijk snel weer hersteld, maar als je nieuwe hardware nodig hebt om je verlichting aan te doen of om je deur te kunnen openen geef je jezelf wel een extra zorg.
Het geeft ook aan hoe compact en geavanceerd de hardware is geworden.
Of hoeveel overkill je tegenwoordig nodig hebt om een lampje aan en uit te schakelen. :+
Mwoah de meeste overkill zit in het "gemak" je lamp wordt, als t geen dimmer is, in de meeste gevallen nog door een relais geschakeld :)
Het geeft ook aan hoe compact en geavanceerd de hardware is geworden. Mijn 486 paste net onder mijn bureau destijds.
Niet alleen dat, die 486 computer had moeite om Doom en Doom 2 goed te spellen, me vader zijn snelle 486 had moeite er mee, en deze CPU in de RF-module uit IKEA Trådfri-lamp heeft totaal geen moeite er mee, en loopt heel soepel en snel, veel sneller dan de 486 computers uit de begin jaren 90s.
Kan niet. Een 386dx40 kon doom op low res fullscreen goed spelen.
Een 486sx25 meeste levels high res fullscreen. Een 486dx66 kon zonder problemen doom 1 en 2 op highres spelen.
Vrijwel niemand had trouwens nog een Pentium toen doom uitkwam.
Op een 386 kon je Doom 2 niet goed spellen, helemaal niet in Full Screen en High Detail.

En Doom 2 met een 486-SX 25 Mhz op Full Screen en High Detail, draait helemaal niet goed, zo als je kan zien.

En Doom 2 op een i486DX2 (P24) 66mhz draait op Full Screen en High Detail redelijk soepel, en waren niet bepaald goedkoop toen ze in 1992 uit kwamen, je was vele duizenden guldens kwijt voor een i486DX2 (P24) 66mhz computer, en dat was toen ook de rede dat niet veel mensen dat konden kopen.

Ja als je een IntelDX4 (P24C)100 MHz heb met een goede toen grafische kaart speelt hij heel soepel, maar die kwamen pas uit op maart 1994.

[Reactie gewijzigd door AmigaWolf op 15 juni 2021 14:48]

De ene 486 was de andere niet.

Heb zelf meerdere 486's gehad, allemaal beetje in dezelfde range (SX25, SX33, DX33, DX2 66) maar totaal verschillende resultaten in de 'ultime graadmeter' van die tijd: Doom.

Zo had ik een Dell 486-DX33 waar echt niks goed op wilde draaien. Je kon er 16MB RAM instoppen, zat zelfs een cache module in, maar ding was niet vooruit te branden in games, kwam door de 512KB (ja...geen eens 1MB) videochip.

Andere 486 met 1MB VLB S3 of Trident videokaart had er weinig moeite mee. Maar ook daar kon je een best groot verschil hebben tussen een PC die wel extra cache op het moederbord had en eentje die dat niet had.

Helaas is m'n enige overlevende 486 eentje zonder extra cache, en ondanks een DX2 66 merk je wel dat Doom dan wat zwaar is voor zo'n machine.
Met een beetje geluk kunnen we over 25 jaar Cyberpunk 2077 op onze slimme IKEA lamp draaien.
En hopelijk ook bugvrij tegen dan :)
Ik gok over 56 jaar :Y)
Met een beetje geluk kunnen we over 25 jaar Cyberpunk 2077 op onze slimme IKEA lamp draaien.
Ik moet er niet aan denken. Vroeg of laat gaat een of andere heldere geest GTA 5 poorten naar de centrale led display van z'n auto :X
En het beeld van de game op de voorruit projecteren?
*rilt*
Breng ze niet op ideeën...
Of:
Over 25 jaar spelen slimme lampen Doom op ons! :o
Ik had toen idd een 386 dx-33, en moest soms terug naar beeld van formaat luciferdoosje om het speelbaar te houden. Maar O wat was het magisch.
ik upgrade wel mijn lamp nu voor een potje doom! met een beetje geluk kan de buurman meespelen zonder een token ring netwerk :o
But why? Puur omdat het kan? Of kunnen hier ook nog nuttige dingen uit komen? Ik vind het knap hoor, maar ik zou het niet eens bedenken om zoiets te gaan doen, laat staan ook nog uitvoeren.
Als je niet bekend bent met het hoe en waarom mensen overal Doom op willen zetten/porten, dan kan je het apart vinden inderdaad. https://www.reddit.com/r/itrunsdoom/ en https://www.gamesradar.co...un-on-literally-anything/ is wel grappig lees voer.
Ah okee dus een beetje als de 'can it run crysis' en 'does it have usb' memes, thanks.
Zoals @Xfade al aangeeft met de linkjes, het is een hele uitdaging om Doom overal, maar dan ook overal op te draaien. Van in games tot printers tot zelfs in Excel, het draait overal zo'n beetje op.
Ik weet niet of deze uitspraak nog vaak gebezigd wordt op Tweakers maar 'vroeger' was de opvatting hier 'het gaat er niet om of het praktisch is, het gaat er om dat het kan'.
Uit dit soort experimenten komen weer andere en ideeën voort die (in)direct weer leiden tot andere ideeën en toepassingen.
Dus de toepassing op zich zal niet praktisch zijn, de techniek er achter opent wellicht deuren naar andere mogelijkheden.
Grappig dat de hardware waar je toen zo trots op was, nu in iedere IKEA lamp dit om deze AAN en UIT te zetten............
Gelukkig niet in iedere Ikea lamp, alleen die met wireless besturing...
Die lamp kan ook dimmen en afzonderlijk drie ledjes aansturen om de gewenste kleurtemperatuur te krijgen. Dus logisch dat die ook Doom kan draaien. ;)
Ik denk nu met weemoed terug aan het 486 tijdperk...

Zou een Ikea lamp ook een turbo knop hebben?
Waarom nemen gamestudio's geen modders aan? Ieder AAA game wordt weer groter 80GB is geen uitzondering meer. Betere graphics? programmeurs: Geen probleem we gebruiken wel de zwaarste videokaart. Deze modder heeft dus DOOM laten draaien op hardware die eigenlijk niet aan de minimale eisen voldoet. Als de gamestudio's hier nu een voorbeeld aan nemen, dan is de wildgroei van opslagruimte, processor, GPU en geheugen grootte en prestatie ook aan banden gelegd.

In de goeie ouwe Amiga tijd kan ik me nog wat demo's herinneren van slechts een paar kB waarop muziek en bewegend beeld zichtbaar was.

Misschien is mijn gedachte wat kort door de bocht wat programmeurs betreft, maar deze modder bewijst dat het ook anders kan.
tijd=geld, en programmeren op die manier kost nu eenmaal vele malen meer tijd, dan dat doorsnee vandaag de dag wordt gedaan. Opslagruimte heeft natuurlijk veelal te maken met de kwaliteit van de graphics, in 16KB sla je nu eenmaal weinig op uiteindelijk.

[Reactie gewijzigd door mvrhrln op 15 juni 2021 00:06]

nouja niemand klaagt echt, ze zouden tijd en resources erin kunnen stoppen maar who cares? 80GB is hedendaags ongeveer een tientje en met 100MB/s down kan je de game redelijk snel herdownloaden zo nodig.

Ik kan met een R9 390 en een i5 uit 2016 nog steeds de meeste games op 1080p/60 spelen, een ps5 is hedendaags volgens mij toch al 2 tot 4x zo snel en of de mensen nu echt het verschil gaan zien tussen 1440p of 4k...

Dusja als artiest heb je ook liever dat je niet na hoeft te denken over de hardware, dus dan is het maar goed dat de meeste dingen overpowered zijn. Voor hackers is het leuk om het zo snel mogelijk te maken maar dat zit artistieke vrijheid enorm in de weg. Nou is het wel zo dat zulke limitaties ook weer kunnen zorgen voor innovatie, zie de ps1 spellen bijvoorbeeld, maar dat moet een keuze zijn en niet een verplichting.
Omdat elke nieuwe game er beter moet uitzien dan de vorige. Er wordt trouwens wel flink geoptimaliseerd aan het eind van de ontwikkelfase van een spel. En 2tb SSD's waren laatst 150 euro. Daar kun je 20 a 30 games op kwijt. 10 jaar terug waren SSD's 10x zo duur.
Sommige studio's doen dat wel. Denk bij voorbeeld aan Counter-Strike, dat een mod was voor Half-Life multiplayer.

Meer recent heeft bij voorbeeld Paradox mensen aangenomen die eerst mods voor hun games hebben gemaakt, om aan het spel zelf of andere nieuwe titels te werken.
Wordt nog wel gedaan. Wat dacht je van The Witcher III op de Nintendo Switch? Het hele spel + Dlc's staat op die cartridge en draait op een tablet! 🙂
iedereen is zo verbaasd dat je op een doordeweeks apparaat met een CPU iets van een kwart eeuw geleden op kan draaien, maar niemand is nog verbaasd dat een rekenmachine of een excel iets kan waar vroeger honderden of zelfs duizenden computers tientallen jaren aan zouden zitten rekenen.

(computers in de oorspronkelijke benaming zijn mensen die berekeningen uitvoeren en controleren)
Doom draait zover ik weet nog niet in Excel, maar met een beetje creativiteit kom je nog redelijk in de buurt (3D engine in Excel): https://www.youtube.com/watch?v=iCeOEQVUWZ0
Computers zijn dus best wel wat sneller geworden dan een 486 met Excel.
Hij heeft het niet over Doom in Excel maar over de complexe berekeningen in een spreadsheet, waar je met je Ryzen nu iéts minder lang over doet dan met je 486-SX destijds..
Echt tweaken dit, top.

Maar wat me vooral opvalt, zelfs op een schermpje dat er minder goed uitziet dan toen ik Doom speelde een slordige twintig jaar terug, hoe ontzettend goed dit spel er nog steeds uitziet. En dit is niet sarcastisch bedoeld, ik meen het echt. Het level design is zo sterk, zelfs met de beperkingen van een 2,5D machine en de ontzettend lage poly count dat je toch naar binnen gezogen wordt. En de gameplay, tja, als ik het spel nu speel is het nog steeds net zo goed als toen, iets wat voor weinig games van vroeger geldt. Ik speel Doom nog steeds met meer plezier dan veel hedendaagse FPS en 3rd person action games.

Doom is simpel, mooi en steengoed en dat blijft het en het zou verplicht moeten kunnen draaien op alles waar een microprocessor in zit.

[Reactie gewijzigd door Dr. Strangelove op 14 juni 2021 21:41]

Dit laat zien hoe ver hardware in de laatste jaren is gekomen. Toch bijzonder dat een smartlamp een intensief spel van jaren geleden kan draaien.
Youtube zoektermen: doom ikea lamp
Bovenste resultaat: https://www.youtube.com/watch?v=0tFDAV8DquY

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee