<?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>Past &#8211; Rotates.org V12</title>
	<atom:link href="https://www.rotates.org/category/projects/past/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.rotates.org</link>
	<description>The personal blog of developer, photographer and designer Lewis &#039;SEPTiMUS&#039; Lane</description>
	<lastBuildDate>Thu, 26 Jun 2025 19:01:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.rotates.org/wp-content/uploads/2025/06/cropped-rotates-logo-32x32.png</url>
	<title>Past &#8211; Rotates.org V12</title>
	<link>https://www.rotates.org</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">6964888</site>	<item>
		<title>CodePen greatest hits pt. 1</title>
		<link>https://www.rotates.org/2025/06/26/codepen-greatest-hits-pt-1/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Thu, 26 Jun 2025 19:01:24 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Past]]></category>
		<category><![CDATA[Plugs]]></category>
		<guid isPermaLink="false">https://www.rotates.org/?p=399</guid>

					<description><![CDATA[I&#8217;ve always enjoyed short, snappy little projects that deliver a quick dose of dopamine, and I&#8217;m a big fan of CodePen as a way to exercise that &#8216;tinker and play&#8217; attitude. One of my earlier and more involved pens was the result of a thought: &#8220;What if 8-bit but open world?&#8221;. A great candidate seemed [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;ve always enjoyed short, snappy little projects that deliver a quick dose of dopamine, and I&#8217;m a big fan of <a href="https://codepen.io/lewster32">CodePen</a> as a way to exercise that &#8216;tinker and play&#8217; attitude.</p>



<p>One of my earlier and more involved pens was the result of a thought: <em>&#8220;What if 8-bit but open world?&#8221;</em>. A great candidate seemed to be Jet Set Willy, and luckily there&#8217;s an absolutely excellent <a href="https://skoolkit.ca/disassemblies/jet_set_willy/index.html">disassembly of the game</a> available. It was fascinating to dive into the data and see how efficiently everything was packed in there while remaining pretty readable. Before the days of widespread fast and convenient compression, programmers just squeezed things down to the last bit.</p>



<p>I ended up writing various routines to process things in a way that looked true to the original, including figuring out how to parse the attributes (the way the Speccy encoded colour and more into 8&#215;8 pixel blocks with a single byte) and generate all of the graphics, rooms and movement patterns.</p>



<p>It&#8217;s not complete unfortunately &#8211; the arrows and the rope swinging routine got the better of me at the time, but I still think it&#8217;s still a really cool little bit of nostalgia, and decently structured (for the time at least; this is pre-ES6 JavaScript).</p>



<p>Anyway, here it is in all its glory. Enjoy!</p>



<div class="wp-block-cp-codepen-gutenberg-embed-block cp_embed_wrapper"><iframe id="cp_embed_MKQzPm" src="//codepen.io/anon/embed/MKQzPm?height=450&amp;theme-id=dark&amp;slug-hash=MKQzPm&amp;default-tab=result" height="450" scrolling="no" frameborder="0" allowfullscreen allowpaymentrequest name="CodePen Embed MKQzPm" title="CodePen Embed MKQzPm" class="cp_embed_iframe" style="width:100%;overflow:hidden">CodePen Embed Fallback</iframe></div>



<p>I quite like the big comment attempting to explain all the bitwise stuff:</p>



<pre class="wp-block-code" style="font-size:12px"><code>    // The attribute format is a single byte containing 2x 1-bit values for flash and bright, then 2x 3-bit values for paper and ink
    // So the value 221 (binary 11011101) broken down becomes flash 1 (1), bright 1 (1), paper 011 (3) and ink 101 (5)
    // To extract these, we perform up to two operations:
    // 1. We perform a bitwise AND on the value with a bitmask of corresponding length for how many bits you want to extract - if 
    // we're looking for a boolean here (using a single bit in the mask), we can just coerce it with the !! operator as the outcome
    // will be zero for false and non-zero for true
    // 2. We perform a bitwise shift to the right so that the bits we're interested in are at far right side
    //
    // Examples:
    // To get the bright value (1 - true) from 221 (11011101):
    // 221 &amp; 64 = 64  (binary: 11001101 AND 01000000 becomes 01000000)
    // !!64 = true    (binary: 01000000 is non-zero, so it becomes true)
    //
    // To get the paper value (3) from 221 (11011101):
    // 221 &amp; 56 = 24  (binary: 11011101 AND 00111000 becomes 00011000)
    // 24 &gt;&gt; 3  = 3   (binary: 00011000 shifted right 3 times becomes 00000011)
    //
    // Quite a nice explanation of what you can do with bitwise operators can be found here:
    // https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators
    // 
    // P.S. I revised this whole intro in September 2020 as I realised I didn't understand bitwise operations as well as I should
    // have. Littered throughout this code are examples of the old inefficient method of "shift then and", as opposed to the
    // 'correct' way of doing things (especially for single bits). No doubt there's more on this for me to learn but it's good to
    // be honest.</code></pre>



<p>I&#8217;ll write up a few more of these for other pens I&#8217;ve done if there&#8217;s any interest. Let me know in the comments or via one of my socials if you&#8217;d like to know more about any of these, or indeed anything else I&#8217;ve done!</p>



<ul class="wp-block-social-links is-layout-flex wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-bluesky  wp-block-social-link"><a href="https://bsky.app/profile/lewster32.dev" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Bluesky</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a href="https://x.com/lewster32" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-codepen  wp-block-social-link"><a href="https://codepen.io/lewster32" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.016,8.84c-0.002-0.013-0.005-0.025-0.007-0.037c-0.005-0.025-0.008-0.048-0.015-0.072 c-0.003-0.015-0.01-0.028-0.013-0.042c-0.008-0.02-0.015-0.04-0.023-0.062c-0.007-0.015-0.013-0.028-0.02-0.042 c-0.008-0.02-0.018-0.037-0.03-0.057c-0.007-0.013-0.017-0.027-0.025-0.038c-0.012-0.018-0.023-0.035-0.035-0.052 c-0.01-0.013-0.02-0.025-0.03-0.037c-0.015-0.017-0.028-0.032-0.043-0.045c-0.01-0.012-0.022-0.023-0.035-0.035 c-0.015-0.015-0.032-0.028-0.048-0.04c-0.012-0.01-0.025-0.02-0.037-0.03c-0.005-0.003-0.01-0.008-0.015-0.012l-9.161-6.096 c-0.289-0.192-0.666-0.192-0.955,0L2.359,8.237C2.354,8.24,2.349,8.245,2.344,8.249L2.306,8.277 c-0.017,0.013-0.033,0.027-0.048,0.04C2.246,8.331,2.234,8.342,2.222,8.352c-0.015,0.015-0.028,0.03-0.042,0.047 c-0.012,0.013-0.022,0.023-0.03,0.037C2.139,8.453,2.125,8.471,2.115,8.488C2.107,8.501,2.099,8.514,2.09,8.526 C2.079,8.548,2.069,8.565,2.06,8.585C2.054,8.6,2.047,8.613,2.04,8.626C2.032,8.648,2.025,8.67,2.019,8.69 c-0.005,0.013-0.01,0.027-0.013,0.042C1.999,8.755,1.995,8.778,1.99,8.803C1.989,8.817,1.985,8.828,1.984,8.84 C1.978,8.879,1.975,8.915,1.975,8.954v6.093c0,0.037,0.003,0.075,0.008,0.112c0.002,0.012,0.005,0.025,0.007,0.038 c0.005,0.023,0.008,0.047,0.015,0.072c0.003,0.015,0.008,0.028,0.013,0.04c0.007,0.022,0.013,0.042,0.022,0.063 c0.007,0.015,0.013,0.028,0.02,0.04c0.008,0.02,0.018,0.038,0.03,0.058c0.007,0.013,0.015,0.027,0.025,0.038 c0.012,0.018,0.023,0.035,0.035,0.052c0.01,0.013,0.02,0.025,0.03,0.037c0.013,0.015,0.028,0.032,0.042,0.045 c0.012,0.012,0.023,0.023,0.035,0.035c0.015,0.013,0.032,0.028,0.048,0.04l0.038,0.03c0.005,0.003,0.01,0.007,0.013,0.01 l9.163,6.095C11.668,21.953,11.833,22,12,22c0.167,0,0.332-0.047,0.478-0.144l9.163-6.095l0.015-0.01 c0.013-0.01,0.027-0.02,0.037-0.03c0.018-0.013,0.035-0.028,0.048-0.04c0.013-0.012,0.025-0.023,0.035-0.035 c0.017-0.015,0.03-0.032,0.043-0.045c0.01-0.013,0.02-0.025,0.03-0.037c0.013-0.018,0.025-0.035,0.035-0.052 c0.008-0.013,0.018-0.027,0.025-0.038c0.012-0.02,0.022-0.038,0.03-0.058c0.007-0.013,0.013-0.027,0.02-0.04 c0.008-0.022,0.015-0.042,0.023-0.063c0.003-0.013,0.01-0.027,0.013-0.04c0.007-0.025,0.01-0.048,0.015-0.072 c0.002-0.013,0.005-0.027,0.007-0.037c0.003-0.042,0.007-0.079,0.007-0.117V8.954C22.025,8.915,22.022,8.879,22.016,8.84z M12.862,4.464l6.751,4.49l-3.016,2.013l-3.735-2.492V4.464z M11.138,4.464v4.009l-3.735,2.494L4.389,8.954L11.138,4.464z M3.699,10.562L5.853,12l-2.155,1.438V10.562z M11.138,19.536l-6.749-4.491l3.015-2.011l3.735,2.492V19.536z M12,14.035L8.953,12 L12,9.966L15.047,12L12,14.035z M12.862,19.536v-4.009l3.735-2.492l3.016,2.011L12.862,19.536z M20.303,13.438L18.147,12 l2.156-1.438L20.303,13.438z"></path></svg><span class="wp-block-social-link-label screen-reader-text">CodePen</span></a></li></ul>



<p></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">399</post-id>	</item>
		<item>
		<title>Chaos Enhanced Enhanced</title>
		<link>https://www.rotates.org/2010/01/17/chaos-enhanced-enhanced/</link>
					<comments>https://www.rotates.org/2010/01/17/chaos-enhanced-enhanced/#comments</comments>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Sun, 17 Jan 2010 02:07:14 +0000</pubDate>
				<category><![CDATA[Archaos]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Past]]></category>
		<category><![CDATA[Releases]]></category>
		<guid isPermaLink="false">http://www.rotates.org/?p=201</guid>

					<description><![CDATA[As another little aside, I&#8217;ve hacked in some configuration for Chaos Enhanced. Use the form below to launch a game with your desired settings &#8211; though please note that this is an abandoned demo with missing features and bugs! Number of players: 2345678 Board width: Board height: Starting spell count per player: Player 1 name: [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>As another little aside, I&#8217;ve hacked in some configuration for Chaos Enhanced. Use the form below to launch a game with your desired settings &#8211; though please note that this is an abandoned demo with missing features and bugs!</p>
<form method="get" action="http://homepage.ntlworld.com/stephen.gee50/chaosenhanced.swf">
<table style="width: 100%">
<tr>
<td style="vertical-align: top">
<label>Number of players: <select id="numplayers"><option value="2" selected="selected">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option></select></label><br />
<label>Board width: <input name="w" id="w" size="3" value="15" /></label><br />
<label>Board height: <input name="h" id="h" size="3" value="12" /></label><br />
<label>Starting spell count per player: <input name="numspells" id="numspells" size="3" value="14" /></label>
</td>
<td style="vertical-align: top">
<label>Player 1 name: <input name="player1" id="player1" size="15" value="Gandalf"></label><br />
<label>Player 2 name: <input name="player2" id="player2" size="15" value="Saruman"></label><br />
<label>Player 3 name: <input name="player3" id="player3" size="15" value="" disabled="disabled"></label><br />
<label>Player 4 name: <input name="player4" id="player4" size="15" value="" disabled="disabled"></label><br />
<label>Player 5 name: <input name="player5" id="player5" size="15" value="" disabled="disabled"></label><br />
<label>Player 6 name: <input name="player6" id="player6" size="15" value="" disabled="disabled"></label><br />
<label>Player 7 name: <input name="player7" id="player7" size="15" value="" disabled="disabled"></label><br />
<label>Player 8 name: <input name="player8" id="player8" size="15" value="" disabled="disabled"></label><br />
<input type="submit" value="Go!" />
</td>
</tr>
</table>
</form>
<p><script type="text/javascript">
$(function() {
	for (var i = 3; i <= 8; i++) {
		$("#player"+i).attr("disabled", "disabled").parent().hide();
	}
	$("#numplayers").change(function() {
		for (var i = 3; i <= 8; i++) {
			if (i <= $(this).val()) {
				$("#player"+i).removeAttr("disabled").parent().show();
			}
			else {
				$("#player"+i).attr("disabled", "disabled").parent().hide();
			}
		}
	});
});
</script><br />
Forgive the awful form and jQuery... it was quick!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.rotates.org/2010/01/17/chaos-enhanced-enhanced/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">201</post-id>	</item>
		<item>
		<title>Splash damage</title>
		<link>https://www.rotates.org/2009/07/24/splash-damage/</link>
		
		<dc:creator><![CDATA[SEPTiMUS]]></dc:creator>
		<pubDate>Fri, 24 Jul 2009 22:21:18 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Past]]></category>
		<category><![CDATA[Personal]]></category>
		<guid isPermaLink="false">http://www.rotates.org/?p=98</guid>

					<description><![CDATA[I doubt most of the people who&#8217;ve found my blog realise the rotates.org history of pretty-but-useless splash pages. Essentially, the original purpose of this site was to display my current &#8216;cool thing&#8217; that I&#8217;d created. It&#8217;s actually a huge passion of mine and great fun to knock something up in a few hours that looks [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I doubt most of the people who&#8217;ve found my blog realise the rotates.org history of pretty-but-useless splash pages. Essentially, the original purpose of this site was to display my current &#8216;cool thing&#8217; that I&#8217;d created. It&#8217;s actually a huge passion of mine and great fun to knock something up in a few hours that looks really nice and is uncomplicated and pretty much pointless. I suppose that fits the bill of &#8216;art&#8217; &#8211; thankfully I&#8217;m not so pretentious that I&#8217;d label it under that banner!</p>
<p>Anyway, after a major hiatus, I&#8217;ve created a new &#8216;splash page&#8217; (for that is all that it is, and will likely ever be) for the online gaming clan I&#8217;ve been a member of for 10 years:</p>
<h3 style="text-align: center;"><a href="http://www.clan-sqs.com">www.clan-sqs.com</a></h3>
<p style="text-align: left;">Really, there&#8217;s nothing to discover, it&#8217;s exactly what you see. I&#8217;d love to have the patience and the skill to work on something akin to <a title="Windosill" href="http://windosill.com/">Windosill</a> but alas it doesn&#8217;t slake my desire to see instant results. If you&#8217;d like to see some of my previous splash screens, you can view them <a href="https://rotates.orgold/" target="_blank">here</a>.</p>
<p>I hope you enjoy these little bits of my history &#8211; I&#8217;m hugely proud of all of them, and they serve to really show how I&#8217;ve come along in my profession as a web designer.</p>
<p>P.S. I&#8217;ve spent the night drinking <a href="http://en.wikipedia.org/wiki/Leffe">Leffe Blonde</a> and listening to <a href="http://en.wikipedia.org/wiki/Devin_Townsend">Devin Townsend</a> &#8211; <a href="http://en.wikipedia.org/wiki/Ziltoid_the_Omniscient">Ziltoid the Omniscient </a>&#8211; awesome <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">98</post-id>	</item>
	</channel>
</rss>
