pouët.net

fastplasm256 by optimus

FastPlasm256 by Optimus
-----------------------

It's time for another one already I guess! I am really hooked into this although I want at some point to go higher to the intro hierarchy and make bigger intros or demos.

This one is just a lame plasma. I was gonna go for 512b, but then I had done this for fun and thought why not try to fit it in 256b?
The original was using a big sine table, so I grabbed some sinegen code I was using on my DOS x86 intros and tried to rewrite it on the ARM.
For reasons, despite this being a size optimized intro, I also wanted this to be good on speed so I wasted few bytes on the LDMIA/STMIA version (runs at slightly above 50fps on the slowest A3000 so that it's 1VBL after I vsync. I also cut from 256 lines to 240 as it was just under 50fps before (hopefully it's also the same smooth in real machine as I test this in emul). It should be silk smooth 50hz on every other Archimedes machine unless I did something wrong (I can only test on my A7000+ where with vsync off it reaches 450fps!).

I am proud that this fits in size and at the same time runs smooth on old Archimedes, unlike most size optimized intros. I am not proud of the colors or how basic the plasma movement is. Also, generating the sines instead of using ones, seem to produce some low precision patterns on the curves. They are more grainy at the edges than my previous code using a precalculated sine table.

I have also included a bigger version which is without vsync and displays FPS counter. And the test code which draws the sine curve so that I can change amplitude/frequency parameters in the code and see how it fits.

Optimus