The original reverse-engineering done by Samuel Villarreal
was already using javascript. I assume by "plain" you mean you removed easeljs library for canvas management and added buttons?
Maybe it wasn't clear in the original article [1], but what you see inline are javascript implementations of the effect - there is a link to the source code at the end:<p><a href="https://codepen.io/svkaiser/pen/xXmOvY" rel="nofollow">https://codepen.io/svkaiser/pen/xXmOvY</a><p>[1] <a href="http://fabiensanglard.net/doom_fire_psx/" rel="nofollow">http://fabiensanglard.net/doom_fire_psx/</a>
I first learned to do this effect in 1999 thanks to the incredible Denthor/Asphexia tutorials. I looked forward to new releases of these that my friend would (somehow) get and give to me on a floppy disk.<p>Most of them were in Pascal, but the fire one was in asm (<a href="http://archive.gamedev.net/archive/reference/articles/article364.html" rel="nofollow">http://archive.gamedev.net/archive/reference/articles/articl...</a>) - it was the first time that assembler really clicked for me!
It's a bit slow. I suggest 1) Use existing table instead of creating a new table at each frame/interval. 2) Or use Canvas because DOM is so slow 3) requestAnimationFrame instead of setInterval
Apple ][ Fire Demo -- 64 Bytes <a href="http://deater.net/weave/vmwprod/apple2_fire/" rel="nofollow">http://deater.net/weave/vmwprod/apple2_fire/</a>
Didn't MS VC++ 4 to 6 ship with an example which emulated this effect as well via a custom control?<p>There were different tabs for things like "wood", "gas", "cryptonite" which changed the overall colour of the effect.