File Type Mode Size
Makefile file 644 1481
README file 644 1826
arm7/ dir 0 0
arm9/ dir 0 0
README
swarmDS - a swarm of pixels for the Nintendo DS

SwarmDS is a port of swarm.3 (http://dominionofawesome.com/hacks/swarm.3/),
a simple javascript/canvas hack that involves a bunch of pixels swarming
around the cursor.  The original program ran in a browser, and was quite
slow, but the algorithm is simple enough that it's portable to anything
with a display and a pointing device.  The playful beauty of it has
inspired me to port it to other platforms, and the program serves as a
useful goal when learning a new system (like the DS).

Swarm.3, is, of course, an evolution of swarm.2, which came from swarm,
all of which are on my hacks page: http://dominionofawesome.com/hacks/ .
A version that runs in SDL and .NET (and thus works on Linux and OS X
using Mono and Windows using the .NET Framework) is available at
http://dominionofawesome.com/hacks/swarm.NET/ .

SwarmDS is a much more ambitious port than swarm.NET, though.  Nowadays
on a PC, floating point is fast and universally available.  On the DS's
ARM9, however, it's slow and not a good solution for an algorithm like
swarm.  I converted the math to use a fixed-point representation.
Secondly, after an initial version using the framebuffer (which is also
slow), I used the 3D rendering engine to draw anti-aliased lines.  This
made it faster, and also had the pleasant side-effect of making it
pretty. :)  The latest optimization is to move all the time-critical
code and data into ITCM and DTCM.  Since swarmDS is so small, that means
nearly all of the program runs directly from ITCM.  Currently, swarmDS
can do 1000 little swarming pixels at 60fps.  I believe there's still
room to grow, computationally, but 1000 pixels is plenty for such a
small screen.

Questions, comments, patches, flames, and praise go to
bytex64@bytex64.net.

Happy Hacking. :)

~chip

Clone: https://git.bytex64.net/swarmDS.git