<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dave&#039;s blog of art and programming &#187; visual programming</title>
	<atom:link href="http://www.pawfal.org/dave/blog/category/visual-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pawfal.org/dave/blog</link>
	<description>missing acceptable use policy</description>
	<lastBuildDate>Fri, 03 Feb 2012 16:04:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Betablocker DS code patterns (part 1)</title>
		<link>http://www.pawfal.org/dave/blog/2012/01/betablocker-ds-code-patterns-1/</link>
		<comments>http://www.pawfal.org/dave/blog/2012/01/betablocker-ds-code-patterns-1/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 17:05:36 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[howto]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=2485</guid>
		<description><![CDATA[Some useful Betablocker DS code patterns as used in common live coding situations.
Firstly, when carrying out a sound check before a live performance it's important to keep some kinds of sound engineers happy generating as many different sounds as you can so they can fiddle around with stuff - of course remember to turn everything [...]]]></description>
			<content:encoded><![CDATA[<p>Some useful <a href="http://www.pawfal.org/dave/index.cgi?Projects/BetablockerDS">Betablocker DS</a> code patterns as used in common live coding situations.</p>
<p>Firstly, when carrying out a sound check before a live performance it's important to keep some kinds of sound engineers happy generating as many different sounds as you can so they can fiddle around with stuff - of course remember to turn everything up to 8 when asked to make the loudest sound you can in order to leave some overhead to blow the PA.</p>
<p>This is a betablocker program which will play all the sounds in a sound bank at all frequencies. Add more concurrent threads to make it more interesting. Values interpreted as pointers are visualised as arrows:</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2012/01/bbds-sndchk1.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2012/01/bbds-sndchk1.png" alt="" title="bbds-sndchk" width="300" height="92" class="alignnone size-full wp-image-2489" /></a><br />
(the instruction set description can be <a href="http://www.pawfal.org/dave/images/bbds-page2.png">found here</a>)</p>
<p>In betablocker the beat is always locked to the instruction cycle rate, so fast changing sounds are a matter of optimisation. One of the most common ways around this (and a good way to start things off in a gig) is to use one fast loop program for playing sounds while another slower program modifies the first by overwriting bits of it. </p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2012/01/bbds-xorrave.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2012/01/bbds-xorrave.png" alt="" title="bbds-xorrave" width="350" height="157" class="alignnone size-full wp-image-2492" /></a></p>
<p>More to follow in this series. See also <a href="http://www.pawfal.org/dave/blog/2011/10/evolving-musical-bytecode-3/">evolved betablocker genetic programs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2012/01/betablocker-ds-code-patterns-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Betablocker DS: Table feedback after Claudius Maximus</title>
		<link>http://www.pawfal.org/dave/blog/2011/08/betablocker-ds-table-feedback-after-claudius-maximus/</link>
		<comments>http://www.pawfal.org/dave/blog/2011/08/betablocker-ds-table-feedback-after-claudius-maximus/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 09:22:00 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[homebrew]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=2205</guid>
		<description><![CDATA[After getting some dates for gigs with Betablocker DS, I am spending some time looking into audio algorithms, and implementing them on the Gameboy DS. Last Thursday I spent some time at the TAI studio/bunker with Till Bovermann investigating these PD patches by Claudius Maximus:

The algorithm uses feedback to create sounds that take some time [...]]]></description>
			<content:encoded><![CDATA[<p>After getting some dates for gigs with <a href="http://www.pawfal.org/dave/index.cgi?Projects/BetablockerDS">Betablocker DS</a>, I am spending some time looking into audio algorithms, and implementing them on the Gameboy DS. Last Thursday I spent some time at the <a href="http://www.pawfal.org/dave/index.cgi?Projects/BetablockerDS">TAI studio/bunker</a> with <a href="http://lfsaw.de/">Till Bovermann</a> investigating <a href="https://code.goto10.org/svn/maximus/tutorials/table-feedback/">these PD patches</a> by <a href="http://claudiusmaximus.goto10.org/cm/">Claudius Maximus</a>:</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2011/08/table-feedback.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2011/08/table-feedback.png" alt="" title="table-feedback" width="338" height="266" class="alignnone size-full wp-image-2206" /></a></p>
<p>The algorithm uses feedback to create sounds that take some time to play through a wide range of frequencies. It works by writing into the same buffer it's playing, but at a different rate/position - the resulting ugliness suits the style of BBDS very much. As an aid to our understanding Till <a href="https://gist.github.com/1170270">converted the algorithm to Supercollider</a>, then over the next couple of days I managed to get it running with an inner loop of 9 instructions on the DS (could probably be optimised further, but I'm still a beginner):</p>
<pre>
@ ----------------------------------------------------
@ qrz_maximus: *dst, length, readpos, writepos [freq, *tab]
@ ----------------------------------------------------
        .global qrz_maximus
	.type   qrz_maximus, %function
qrz_maximus:
        push    {r4,r5,r6,r7}       @ push the registers we need
        ldr     r4, [r13,#20]       @ load freq from stack into r4
        ldr     r5, [r13,#24]       @ load *tab from stack into r5
        ldr     r6, .tablength      @ load the tablen into r6
.maximus_loop:
        ldrh    r7, [r5,r2]         @ load the sample into r7
        strh    r7, [r0], #2        @ write output: *dst=r7 dst++
        strh    r7, [r5,r3]         @ feedback into tab[writepos]=r7
        add     r2, r2, r4          @ readpos+=freq
        and     r2, r2, r6          @ mask readpos into range
        add     r3, r3, #2          @ writepos++
        and     r3, r3, r6          @ mask writepos into range
        subs    r1, r1, #1          @ length--
        bne     .maximus_loop       @ repeat until length zero
        mov     r0, r2              @ return readpos
        pop     {r4,r5,r6,r7}
        bx      lr                  @ exit
.tablength:
        .word   0x00003FF
</pre>
<p>And here it is running on autopilot with a test program in Betablocker:</p>
<p><iframe src="http://player.vimeo.com/video/28294545" width="600" height="450" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2011/08/betablocker-ds-table-feedback-after-claudius-maximus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scheme Bricks on Android</title>
		<link>http://www.pawfal.org/dave/blog/2011/06/scheme-bricks-on-android/</link>
		<comments>http://www.pawfal.org/dave/blog/2011/06/scheme-bricks-on-android/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 12:10:15 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=2042</guid>
		<description><![CDATA[
A screenshot of scheme bricks running on android. Its actually the next version of scheme bricks really, as it's been subject to a major rewrite. The original was pretty cluttered with lots of last minute pre-going-on-stage hacks and additions. As in the original, the touchscreen expression selection works by ray casting into the 3D scene [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2011/06/snap20110607_142950.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2011/06/snap20110607_142950.png" alt="" title="snap20110607_142950" width="480" height="800" class="alignright size-full wp-image-2043" /></a><br />
A screenshot of scheme bricks running on android. Its actually the next version of scheme bricks really, as it's been subject to a <a href="https://gitorious.org/flotsam/flotsam/blobs/master/android/fluxus/assets/startup.scm">major rewrite</a>. The <a href="http://www.pawfal.org/dave/index.cgi?Projects/Scheme%20Bricks">original</a> was pretty cluttered with lots of last minute pre-going-on-stage hacks and additions. As in the original, the touchscreen expression selection works by ray casting into the 3D scene with (geo/line-intersect) which is now part of android fluxus, but no dragging or dropping - the fun bit - or even fonts yet. </p>
<p>Still it's somewhat satisfying to work on fluxus scheme code that runs on Linux, Mac, Windows, Android and PS2!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2011/06/scheme-bricks-on-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rainy sunday</title>
		<link>http://www.pawfal.org/dave/blog/2011/05/rainy-sunday/</link>
		<comments>http://www.pawfal.org/dave/blog/2011/05/rainy-sunday/#comments</comments>
		<pubDate>Sun, 29 May 2011 20:30:43 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[homebrew]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=2022</guid>
		<description><![CDATA[A rainy Sunday, with only the dog for company, so in between walks I thought I'd try and learn some assembler. I've been unhappy with triggering samples with Betablocker DS (I prefer synthesis) and I've heard good things about ARM asm - so it seemed like a good opportunity to attempt a small, fast and [...]]]></description>
			<content:encoded><![CDATA[<p>A rainy Sunday, with only the dog for company, so in between walks I thought I'd try and learn some assembler. I've been unhappy with triggering samples with Betablocker DS (I prefer synthesis) and I've heard good things about ARM asm - so it seemed like a good opportunity to attempt a small, fast and dirty synth.</p>
<p><iframe src="http://player.vimeo.com/video/24390484" width="600" height="450" frameborder="0"></iframe></p>
<p>I found some really nice tutorials <a href="http://www.coranac.com/tonc/text/asm.htm">here</a> and <a href="http://quirkygba.blogspot.com/2008/12/things-you-never-wanted-to-know-about.html">here</a>. I've done a tiny bit of this sort of thing before with microcontrollers, but this is a more of a respectable flavour of assembler, on a decent <a href="http://en.wikipedia.org/wiki/Reduced_instruction_set_computing">RISC</a> processor (which derives from the Acorn Archimedes and is now used on IPhones, Androids and Gameboys). Here is a white noise generator:</p>
<pre style='color:#000000;background:#ffffff;'><span style='color:#696969; '>; white_noise(r0=*dst, r1=clock, r2=length, r3=freq)</span>
<span style='color:#e34adc; '>white_noise:</span>
        <span style='color:#800000; font-weight:bold; '>push</span>    <span style='color:#808030; '>{</span>r4<span style='color:#808030; '>,</span>r5<span style='color:#808030; '>,</span>r6<span style='color:#808030; '>}</span>          <span style='color:#696969; '>; need to restore registers we use</span>
        <span style='color:#800000; font-weight:bold; '>mov</span>     r4<span style='color:#808030; '>,</span> r1              <span style='color:#696969; '>; r4 is the rand state (start with clock)</span>
        ldr     r5<span style='color:#808030; '>,</span> <span style='color:#808030; '>.</span>rnd_data       <span style='color:#696969; '>; r5 is the multiplier value</span>
        ldr     r6<span style='color:#808030; '>,</span> <span style='color:#808030; '>.</span>rnd_data<span style='color:#808030; '>+</span><span style='color:#008c00; '>1</span>     <span style='color:#696969; '>; r6 is the addition value</span>
<span style='color:#e34adc; '>.noise_loop:</span>
        mla     r4<span style='color:#808030; '>,</span> r5<span style='color:#808030; '>,</span> r4<span style='color:#808030; '>,</span> r6      <span style='color:#696969; '>; the maths bit: r4 = (r6 + (r5 * r4))</span>
        strh    r4<span style='color:#808030; '>,</span> <span style='color:#808030; '>[</span>r0<span style='color:#808030; '>]</span><span style='color:#808030; '>,</span> #<span style='color:#008c00; '>2</span>        <span style='color:#696969; '>; *dst++ = clock; </span>
        subs    r2<span style='color:#808030; '>,</span> r2<span style='color:#808030; '>,</span> #<span style='color:#008c00; '>1</span>          <span style='color:#696969; '>; length--;</span>
        bne     <span style='color:#808030; '>.</span>noise_loop         <span style='color:#696969; '>; branch if length not zero</span>
        <span style='color:#800000; font-weight:bold; '>pop</span>     <span style='color:#808030; '>{</span>r4<span style='color:#808030; '>,</span>r5<span style='color:#808030; '>,</span>r6<span style='color:#808030; '>}</span>
        <span style='color:#000080; '>bx</span>      lr                  <span style='color:#696969; '>; return</span>
<span style='color:#e34adc; '>.rnd_data:</span>
        <span style='color:#808030; '>.</span><span style='color:#800000; font-weight:bold; '>word</span>   <span style='color:#008000; '>0x000343FD</span>          <span style='color:#696969; '>; nicked from ansi c rand()</span>
        <span style='color:#808030; '>.</span><span style='color:#800000; font-weight:bold; '>word</span>   <span style='color:#008000; '>0x00269EC3</span>          <span style='color:#696969; '>; need to keep large numbers (&gt;8bit) as data</span>
</pre>
<p>This code is based on the ansi C rand() function that basically looks like this:</p>
<pre style='color:#000000;background:#ffffff;'>randnum <span style='color:#808030; '>=</span> randnum * <span style='color:#008c00; '>214013</span> <span style='color:#808030; '>+</span> <span style='color:#008c00; '>2531011</span><span style='color:#400000; '>;</span></pre>
<p>Which we can do in a single instruction - mla (<a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/CIHIHGGJ.html">multiply with accumulate</a>). Of course, gcc would presumably optimise much better code than mine from C++, but there is something more satisfying about doing it this way. I certainly prefer the sound - and over half the cpu usage remains unused with 5 voices and the interface running. The rest of the <a href="https://gitorious.org/flotsam/flotsam/blobs/master/ds/bbds/source/qrz.s">code is here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2011/05/rainy-sunday/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New Betablocker DS video</title>
		<link>http://www.pawfal.org/dave/blog/2011/05/new-betablocker-ds-video/</link>
		<comments>http://www.pawfal.org/dave/blog/2011/05/new-betablocker-ds-video/#comments</comments>
		<pubDate>Sun, 01 May 2011 09:33:08 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1912</guid>
		<description><![CDATA[I made a possible candidate for the TOPLAP dvd project - I took some time to get the audio visual sync working properly, which makes it (possibly) a little clearer what's going on.

]]></description>
			<content:encoded><![CDATA[<p>I made a possible candidate for the <a href="http://www.toplap.org">TOPLAP</a> dvd project - I took some time to get the audio visual sync working properly, which makes it (possibly) a little clearer what's going on.</p>
<p><object style="height: 390px; width: 640px"><param name="movie" value="http://www.youtube.com/v/9j-CFeS1hCE?version=3"><param name="allowFullScreen" value="true"><param name="allowScriptAccess" value="always"><embed src="http://www.youtube.com/v/9j-CFeS1hCE?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2011/05/new-betablocker-ds-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video from 4for8 event</title>
		<link>http://www.pawfal.org/dave/blog/2011/04/video-from-4for8-event/</link>
		<comments>http://www.pawfal.org/dave/blog/2011/04/video-from-4for8-event/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 08:33:39 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[gig]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1910</guid>
		<description><![CDATA[
TAI Studio Opening Documentary from LFSaw.de on Vimeo.
More context on the tai studio webpage. Includes my first gameboy ds livecoding performance with webcamera screen/fingers/stylus projection.
]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/22569254" width="600" height="338" frameborder="0"></iframe>
<p><a href="http://vimeo.com/22569254">TAI Studio Opening Documentary</a> from <a href="http://vimeo.com/lfsaw">LFSaw.de</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>More context on the <a href="http://tai-studio.org/index.php/4for8/">tai studio</a> webpage. Includes my first gameboy ds livecoding performance with webcamera screen/fingers/stylus projection.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2011/04/video-from-4for8-event/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Betablocker DS premier @ 4for8</title>
		<link>http://www.pawfal.org/dave/blog/2011/04/betablocker-ds-premier-4for8/</link>
		<comments>http://www.pawfal.org/dave/blog/2011/04/betablocker-ds-premier-4for8/#comments</comments>
		<pubDate>Sat, 09 Apr 2011 17:06:54 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[gig]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1867</guid>
		<description><![CDATA[My first attempt at homebrew driven "touch" livecoding at the TAI studio opening event at the Helsinki Media Lab. The DS itself proved to be quite a draw for the audience, and I think the addition of hands and fingers to the projection of a livecoding interface is a (partly unintentional) move in a good [...]]]></description>
			<content:encoded><![CDATA[<p>My first attempt at <a href="http://en.wikipedia.org/wiki/Homebrew_%28video_games%29">homebrew</a> driven <a href="http://www.pawfal.org/dave/index.cgi?Projects/BetablockerDS">"touch" livecoding</a> at the <a href="http://tai-studio.org/">TAI studio</a> opening event at the <a href="http://mlab.taik.fi/">Helsinki Media Lab</a>. The DS itself proved to be quite a draw for the audience, and I think the addition of hands and fingers to the projection of a livecoding interface is a (partly unintentional) move in a good direction.</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2011/04/bbds1.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2011/04/bbds1-300x257.jpg" alt="" title="bbds1" width="300" height="257" class="alignnone size-medium wp-image-1868" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2011/04/bbds2.jpg"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2011/04/bbds2-300x257.jpg" alt="" title="bbds2" width="300" height="257" class="alignnone size-medium wp-image-1869" /></a><br />
Photos by <a href="http://tai-studio.org/static/galleries/2011-opening/">Till Bovermann</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2011/04/betablocker-ds-premier-4for8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Betablocker DS</title>
		<link>http://www.pawfal.org/dave/blog/2011/04/more-betablocker-ds/</link>
		<comments>http://www.pawfal.org/dave/blog/2011/04/more-betablocker-ds/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 15:59:51 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[gig]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1861</guid>
		<description><![CDATA[Betablocker DS is going to get it's premier outing at 4for8 at Helsinki Medialab this Thursday. This is an all new upside-down video:

]]></description>
			<content:encoded><![CDATA[<p>Betablocker DS is going to get it's premier outing at <a href="http://tangibleauditoryinterfaces.de/index.php/4for8/">4for8</a> at Helsinki Medialab this Thursday. This is an all new upside-down video:</p>
<p><iframe src="http://player.vimeo.com/video/21918335" width="600" height="450" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2011/04/more-betablocker-ds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wonky Betablocker DS movie</title>
		<link>http://www.pawfal.org/dave/blog/2010/12/wonky-betablocker-ds-movie/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/12/wonky-betablocker-ds-movie/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 17:19:26 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1631</guid>
		<description><![CDATA[More work on Betablocker DS. Note playback cues work (after spending some time scratching my head over the affine transformations on the nds). I find these essential for visual feedback when livecoding. I also appear to be maxing out the graphics chip, which fails pleasingly gracefully - stopping rendering rather than framing out - some [...]]]></description>
			<content:encoded><![CDATA[<p>More work on Betablocker DS. Note playback cues work (after spending some time scratching my head over the affine transformations on the nds). I find these essential for visual feedback when livecoding. I also appear to be maxing out the graphics chip, which fails pleasingly gracefully - stopping rendering rather than framing out - some parts of sprites disappear in hectic areas of the screen keeping the framerate constant (wish OpenGL would do that). </p>
<p><embed src="http://blip.tv/play/AYKX7XkC" type="application/x-shockwave-flash" width="480" height="390" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<p>A lot of the code needs cleaning up (quite a bit of lazy floating point stuff to be removed) but it's starting to feel a bit on the finished side. Just need to learn how to play it now:  <a href="http://gitorious.org/flotsam/flotsam/trees/master/ds/bbds">code</a> & <a href="">rom</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/12/wonky-betablocker-ds-movie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New version of Betablocker DS</title>
		<link>http://www.pawfal.org/dave/blog/2010/12/new-version-of-betablocker-ds/</link>
		<comments>http://www.pawfal.org/dave/blog/2010/12/new-version-of-betablocker-ds/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 10:08:55 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[visual programming]]></category>

		<guid isPermaLink="false">http://www.pawfal.org/dave/blog/?p=1616</guid>
		<description><![CDATA[Pocket touch livecoding in assembler. More sounds, better icons, pointer visualisation, new programming system, thread control and visualisation (finally also using the top screen). Source and rom. The colours look much better on the real hardware.
 
]]></description>
			<content:encoded><![CDATA[<p>Pocket touch livecoding in assembler. More sounds, better icons, pointer visualisation, new programming system, thread control and visualisation (finally also using the top screen). <a href="http://gitorious.org/flotsam/flotsam/trees/master/ds/bbds">Source</a> and <a href="http://www.pawfal.org/dave/files/bbds.nds">rom</a>. The colours look much better on the real hardware.</p>
<p><a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/12/bbds-14.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/12/bbds-14.png" alt="" title="bbds-14" width="256" height="385" class="alignnone size-full wp-image-1617" /></a> <a href="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/12/bbds-15.png"><img src="http://www.pawfal.org/dave/blog/wp-content/uploads/2010/12/bbds-15.png" alt="" title="bbds-15" width="256" height="385" class="alignnone size-full wp-image-1618" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pawfal.org/dave/blog/2010/12/new-version-of-betablocker-ds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

