<?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"
	>

<channel>
	<title>Messy Mind</title>
	<atom:link href="http://www.messy-mind.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.messy-mind.net</link>
	<description>Welcome to the tangle in my head.</description>
	<pubDate>Tue, 14 Oct 2008 18:28:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Fast GPU color transforms with XNA</title>
		<link>http://www.messy-mind.net/xna/fast-gpu-color-transforms/</link>
		<comments>http://www.messy-mind.net/xna/fast-gpu-color-transforms/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 18:11:19 +0000</pubDate>
		<dc:creator>Bicubic</dc:creator>
		
		<category><![CDATA[XNA]]></category>

		<category><![CDATA[effects]]></category>

		<category><![CDATA[shaders]]></category>

		<guid isPermaLink="false">http://www.messy-mind.net/?p=359</guid>
		<description><![CDATA[Some time ago I came across a nice Siggraph paper on Using Lookup Tables to Accelerate Color Transformations and since then have been interested in seeing it at work. 
The basic premise is that a 3d texture is used as a lookup table where the input 3d coords represent the input colour. A nice and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.messy-mind.net/uploads/2008/10/color-transforms-2.jpg" rel="shadowbox[post-359];player=img; attachment wp-att-333"><img src="http://www.messy-mind.net/uploads/2008/10/color-transforms-2-150x56.jpg" alt="" title="color-transforms-2" width="150" height="56" class="alignleft size-thumbnail wp-image-333" /></a>Some time ago I came across a nice Siggraph paper on <a href="http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter24.html">Using Lookup Tables to Accelerate Color Transformations</a> and since then have been interested in seeing it at work. </p>
<p>The basic premise is that a 3d texture is used as a lookup table where the input 3d coords represent the input colour. A nice and simple fragment shader is then used to access this lookup texture and return the transformed color. Any number of any complexity operations can be stored in the lookup texture as long as you&#8217;re mapping the single input pixel (that is, no neighbours). Gamma correction, contrast, saturation, colorisation, levels, colour keying etc, are all possible in any combination at a fixed small cost.<br />
<span id="more-359"></span></p>
<h4>The basics</h4>
<p>Here&#8217;s how I generate my lookup 3d texture.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp csharp" style="font-family:monospace;"><span style="color: #0600FF;">int</span> size <span style="color: #000000;">=</span> <span style="color: #000000;">32</span>; <span style="color: #008900; font-style: italic;">//size of lookup texture</span>
<span style="color: #000000;">Color</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> colors <span style="color: #000000;">=</span> <span style="color: #0600FF;">new</span> <span style="color: #000000;">Color</span><span style="color: #000000;">&#91;</span>size <span style="color: #000000;">*</span> size <span style="color: #000000;">*</span> size<span style="color: #000000;">&#93;</span>;
<span style="color: #000000;">Texture3D</span> tex <span style="color: #000000;">=</span> <span style="color: #0600FF;">new</span> <span style="color: #000000;">Texture3D</span><span style="color: #000000;">&#40;</span>Device, size, size, size, <span style="color: #000000;">1</span>, <span style="color: #000000;">TextureUsage</span>.<span style="color: #0000FF;">Linear</span>, SurfaceFormat.<span style="color: #000000;">Color</span><span style="color: #000000;">&#41;</span>;
<span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">int</span> r <span style="color: #000000;">=</span> 0; r <span style="color: #000000;">&lt;</span> size; r<span style="color: #000000;">++</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
    <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">int</span> g <span style="color: #000000;">=</span> 0; g <span style="color: #000000;">&lt;</span> size; g<span style="color: #000000;">++</span><span style="color: #000000;">&#41;</span>
    <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">int</span> b <span style="color: #000000;">=</span> 0; b <span style="color: #000000;">&lt;</span> size; b<span style="color: #000000;">++</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            Vector3 inCol <span style="color: #000000;">=</span> <span style="color: #0600FF;">new</span> Vector3<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #0600FF;">float</span><span style="color: #000000;">&#41;</span>r <span style="color: #000000;">/</span> size, <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">float</span><span style="color: #000000;">&#41;</span>g <span style="color: #000000;">/</span> size, <span style="color: #000000;">&#40;</span><span style="color: #0600FF;">float</span><span style="color: #000000;">&#41;</span>b <span style="color: #000000;">/</span> size<span style="color: #000000;">&#41;</span>;
            <span style="color: #008900; font-style: italic;">//Manipulate the input color in some way here</span>
            <span style="color: #000000;">Color</span> col <span style="color: #000000;">=</span> <span style="color: #0600FF;">new</span> <span style="color: #000000;">Color</span><span style="color: #000000;">&#40;</span>inCol<span style="color: #000000;">&#41;</span>;
            colors<span style="color: #000000;">&#91;</span>r <span style="color: #000000;">+</span> <span style="color: #000000;">&#40;</span>g <span style="color: #000000;">*</span> size<span style="color: #000000;">&#41;</span> <span style="color: #000000;">+</span> <span style="color: #000000;">&#40;</span>b <span style="color: #000000;">*</span> size <span style="color: #000000;">*</span> size<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span> <span style="color: #000000;">=</span> col;
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
tex.<span style="color: #0000FF;">SetData</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Color</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&#40;</span>colors<span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>Not rocket science, is it? We&#8217;ve just created a lookup table that simply maps output = input. Now, to display it. We have a pretty simple effect to do all out work for us. The only calculations it has to perform are the texel offsets explained in the article I linked. I&#8217;m assuming the reader knows enough about XNA to attach this effect so a SpriteBatch but even if not, you&#8217;ll find that in the sample code.</p>

<div class="wp_syntax"><div class="code"><pre class="glsl glsl" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">half</span> lutSize <span style="color: #000066;">=</span> <span style="color: #0000ff;">32</span>; <span style="color: #666666; font-style: italic;">//some default lookup table size, to be changed by app</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//Sampler for texture currently being drawn</span>
<span style="color: #000066; font-weight: bold;">sampler2D</span> tex1 <span style="color: #000066;">:</span> register<span style="color: #000066;">&#40;</span>s0<span style="color: #000066;">&#41;</span>; 
&nbsp;
<span style="color: #666666; font-style: italic;">//Sampler for lookup table</span>
<span style="color: #993333; font-weight: bold;">texture3D</span> cubeTex;
<span style="color: #000066; font-weight: bold;">sampler3D</span> cube <span style="color: #000066;">=</span> sampler_state
<span style="color: #000066;">&#123;</span>
Texture <span style="color: #000066;">=</span> <span style="color: #000066;">&lt;</span>cubeTex&gt;; 
<span style="color: #666666; font-style: italic;">//We really want triliniear filtering for this sort of thing</span>
MinFilter <span style="color: #000066;">=</span> linear;
MagFilter <span style="color: #000066;">=</span> linear;
MipFilter <span style="color: #000066;">=</span> linear; 
<span style="color: #000066;">&#125;</span>;
&nbsp;
float4 Fragment<span style="color: #000066;">&#40;</span>float4 incol <span style="color: #000066;">:</span> COLOR<span style="color: #000066;">,</span> float2 UV <span style="color: #000066;">:</span> TEXCOORD0<span style="color: #000066;">&#41;</span> <span style="color: #000066;">:</span> COLOR0
<span style="color: #000066;">&#123;</span>
	<span style="color: #666666; font-style: italic;">//Fetch input color</span>
	float4 inCol <span style="color: #000066;">=</span> tex2D<span style="color: #000066;">&#40;</span>tex1<span style="color: #000066;">,</span> UV<span style="color: #000066;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">//Edge offset (see http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter24.html)</span>
	half3 scale <span style="color: #000066;">=</span> <span style="color: #000066;">&#40;</span>lutSize <span style="color: #000066;">-</span> <span style="color: #0000ff;">1.0</span><span style="color: #000066;">&#41;</span> <span style="color: #000066;">/</span> lutSize;
	half3 offset <span style="color: #000066;">=</span> <span style="color: #0000ff;">1.0</span> <span style="color: #000066;">/</span> <span style="color: #000066;">&#40;</span><span style="color: #0000ff;">2.0</span> <span style="color: #000066;">*</span> lutSize<span style="color: #000066;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">//Transform</span>
	float4 outCol <span style="color: #000066;">=</span> tex3D<span style="color: #000066;">&#40;</span>cube<span style="color: #000066;">,</span> scale <span style="color: #000066;">*</span> inCol <span style="color: #000066;">+</span> offset<span style="color: #000066;">&#41;</span>;
&nbsp;
	<span style="color: #666666; font-style: italic;">//Lerp between input and transformed in RGB space based on input vertex alpha</span>
	<span style="color: #000000; font-weight: bold;">return</span> lerp<span style="color: #000066;">&#40;</span>inCol<span style="color: #000066;">,</span> outCol<span style="color: #000066;">,</span> incol<span style="color: #000066;">.</span><span style="color: #006600;">a</span><span style="color: #000066;">&#41;</span>;
<span style="color: #000066;">&#125;</span>
&nbsp;
technique FastTransform
<span style="color: #000066;">&#123;</span>
    pass Pass1
    <span style="color: #000066;">&#123;</span>
        PixelShader <span style="color: #000066;">=</span> compile ps_2_0 Fragment<span style="color: #000066;">&#40;</span><span style="color: #000066;">&#41;</span>;
    <span style="color: #000066;">&#125;</span>
<span style="color: #000066;">&#125;</span></pre></div></div>

<p>That&#8217;s it. After generating a lookup table and setting it on the effect, its ready to go. At the moment you&#8217;d see no difference because the lookup table outputs the input colour but you could try something simple like inCol*=2 to do a multiply2x.<br />
That&#8217;s great, but to actually do something meaningful with this you&#8217;ll probably at least want to be able to convert to HSL and back. I&#8217;ve spent some time to write a rudimentary library for performing colour transforms, you&#8217;ll find it in the sample. Still, to see actual use from this technique you&#8217;ll probably want photoshop grade effects; that&#8217;s what I had in mind when I started this. I scurried about the net looking for various algorithms to perform some of the photoshop tasks, like gamma correction, exposure, levels. I gave up on that notion pretty quickly. Some are fairly complex algorithms that make the lookup table generation slow, and I plain didn&#8217;t want to spend hours reinventing the wheel. There&#8217;s a better way.</p>
<h4>Generating the lookup table with image editing software</h4>
<p>Use photoshop for photoshop grade filters, of course! Its quite simple. To start, we need a 2d representation of the identity lookup table. I whipped up a quick routine to do this and figure out the nicest image sizes for me.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> <span style="color: #000000;">Texture2D</span> LutToTexture2D<span style="color: #000000;">&#40;</span><span style="color: #000000;">GraphicsDevice</span> Device, <span style="color: #000000;">Texture3D</span> lut<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #008900; font-style: italic;">//Calculate closest to square proportions for 2d table</span>
            <span style="color: #008900; font-style: italic;">//We assume power-of-two sides, otherwise I don't know</span>
            <span style="color: #0600FF;">int</span> size <span style="color: #000000;">=</span> lut.<span style="color: #0000FF;">Width</span>;
            <span style="color: #0600FF;">int</span> side1 <span style="color: #000000;">=</span> size <span style="color: #000000;">*</span> size;
            <span style="color: #0600FF;">int</span> side2 <span style="color: #000000;">=</span> size;
            <span style="color: #0600FF;">while</span> <span style="color: #000000;">&#40;</span>side1 <span style="color: #000000;">/</span> <span style="color: #000000;">2</span> <span style="color: #000000;">&gt;=</span> side2 <span style="color: #000000;">*</span> <span style="color: #000000;">2</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                side1 <span style="color: #000000;">/=</span> <span style="color: #000000;">2</span>;
                side2 <span style="color: #000000;">*=</span> <span style="color: #000000;">2</span>;
            <span style="color: #000000;">&#125;</span>
&nbsp;
            <span style="color: #008900; font-style: italic;">//Dump 3d texture into 2d texture</span>
            <span style="color: #000000;">Color</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> colors <span style="color: #000000;">=</span> <span style="color: #0600FF;">new</span> <span style="color: #000000;">Color</span><span style="color: #000000;">&#91;</span>size <span style="color: #000000;">*</span> size <span style="color: #000000;">*</span> size<span style="color: #000000;">&#93;</span>;
            <span style="color: #000000;">Texture2D</span> tex <span style="color: #000000;">=</span> <span style="color: #0600FF;">new</span> <span style="color: #000000;">Texture2D</span><span style="color: #000000;">&#40;</span>Device, side1, side2, <span style="color: #000000;">1</span>, <span style="color: #000000;">TextureUsage</span>.<span style="color: #0000FF;">Linear</span>, SurfaceFormat.<span style="color: #000000;">Color</span><span style="color: #000000;">&#41;</span>;
            lut.<span style="color: #0000FF;">GetData</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Color</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&#40;</span>colors<span style="color: #000000;">&#41;</span>;
            tex.<span style="color: #0000FF;">SetData</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Color</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&#40;</span>colors<span style="color: #000000;">&#41;</span>;
            <span style="color: #0600FF;">return</span> tex;
        <span style="color: #000000;">&#125;</span></pre></div></div>

<p>A 64px cube unfolds to a nice 512&#215;512 image like this:<br />
<a href="http://www.messy-mind.net/uploads/2008/10/tex.png" rel="shadowbox[post-359];player=img; attachment wp-att-325"><img src="http://www.messy-mind.net/uploads/2008/10/tex-300x300.png" alt="" title="2d lut" width="300" height="300" class="alignnone size-medium wp-image-325" /></a><br />
<a href="http://www.messy-mind.net/uploads/2008/10/color-transforms-1.jpg" rel="shadowbox[post-359];player=img; attachment wp-att-328"><img src="http://www.messy-mind.net/uploads/2008/10/color-transforms-1-150x105.jpg" alt="" title="color-transforms-1" width="150" height="105" class="alignleft size-thumbnail wp-image-328" /></a> Once you have that, feel free to throw it into your favourite image editor and apply any colour transforms you want to it. For the results to be actually meaningful, I took a screenshot of my game, applied adjustment layers to make it look how I want, and then threw them on the lookup table. You can see my setup in the screenshot here.<br />
Finally we load the modified lookup table back in by reversing the above process (see sample), and voila! Lightning fast photoshop grade filters.</p>
<h4>Limitations</h4>
<p>This cake is obviously not free. The lookup tables take up video memory. For compatibility reasons I use SurfaceFormat.Color to represent them which means that one channel (alpha) is wasted; which doesn&#8217;t help either. A 32px cube is negligible, a 64px cube takes up 1mb, a 128px cube takes up 8mb, and the full 256px deal takes up a whopping 64mb. What size should you be using? That depends on the complexity of the transformations you&#8217;re doing. The higher frequency the changes in your function are, the higher resolution table you&#8217;ll need. I find that 64 is acceptable for most stuff. 128 may be needed sometimes (once so far) to closely match photoshop. I find that 8mb is still acceptable today, just make sure that your effect warrants it.</p>
<p>The other limitation is that the procedure is pretty static. If you wanted to change some settings, you&#8217;d have to rebuild the table. One way around this is to create multiple tables with different settings and interpolate between them, but be careful to make sure that your vram expenditure and shader complexity (with the new interpolation which may not look nice in rgb space) are really worth using this for rather than just writing a shader to do the job traditionally.<br />
Alternatively you could have a two step system where you execute a complex shader on the lookup table and use that to do the rest of the work. This would be nice where settings change every once in a while, and you have existing shader code to do the task.</p>
<p>So is this terribly useful at the end of the day? For the inept like me, yes! I like the idea of going into photoshop and making the look I want a lot more than writing fiddly shader code. Its pretty hard to picture this sort of math without actually seeing it at work.</p>
<p><a href='http://www.messy-mind.net/uploads/2008/10/colortransforms.zip'>Download Sample</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messy-mind.net/xna/fast-gpu-color-transforms/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Renovations</title>
		<link>http://www.messy-mind.net/news/renovations/</link>
		<comments>http://www.messy-mind.net/news/renovations/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 07:45:56 +0000</pubDate>
		<dc:creator>Bicubic</dc:creator>
		
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.messy-mind.net/?p=294</guid>
		<description><![CDATA[You&#8217;ve probably noticed that the site looks quite different. Me and WT spent two days to get a new theme rolling, upgrade wordpress, and install a few great new features. 
The next step will be to put up a page for Aziel, set up forums for its testing, and make them work together with the [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve probably noticed that the site looks quite different. Me and WT spent two days to get a new theme rolling, upgrade wordpress, and install a few great new features. </p>
<p>The next step will be to put up a page for Aziel, set up forums for its testing, and make them work together with the blog. This won&#8217;t be for a while though because of life distractions and the fact that me and WT (and maybe Clam!) are doing some work on a side project; a game that I&#8217;ll talk about later.</p>
<p>Oh and here&#8217;s a random Aziel screenshot just to show off the new shadowbox integration.<br />
<a href="http://www.messy-mind.net/uploads/2008/10/aziel.jpg" rel="shadowbox[post-294];player=img; attachment wp-att-295"><img src="http://www.messy-mind.net/uploads/2008/10/aziel-150x77.jpg" alt="" title="aziel" width="150" height="77" class="alignnone size-thumbnail wp-image-295" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messy-mind.net/news/renovations/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GM Decompiler Update</title>
		<link>http://www.messy-mind.net/game-maker/gm-decompiler-update/</link>
		<comments>http://www.messy-mind.net/game-maker/gm-decompiler-update/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 08:49:54 +0000</pubDate>
		<dc:creator>Clam</dc:creator>
		
		<category><![CDATA[Game Maker]]></category>

		<category><![CDATA[decompiler]]></category>

		<category><![CDATA[yoyo games]]></category>

		<guid isPermaLink="false">http://www.messy-mind.net/game-maker/gm-decompiler-update/</guid>
		<description><![CDATA[Well, here it is, the update to the GM decompiler that&#8217;s taken something like 9 months to release. Obviously I haven&#8217;t been working on it all that time, I just picked it up from time to time.
Anyway, it does pretty much everything the old one didn&#8217;t:

 Decompiles Instant Play games
Extracts extensions from GM7 games
Extracts Game [...]]]></description>
			<content:encoded><![CDATA[<p>Well, here it is, the update to the GM decompiler that&#8217;s taken something like 9 months to release. Obviously I haven&#8217;t been working on it all that time, I just picked it up from time to time.</p>
<p>Anyway, it does pretty much everything the old one didn&#8217;t:</p>
<ul>
<li> Decompiles Instant Play games</li>
<li>Extracts extensions from GM7 games</li>
<li>Extracts Game Icon, exe info</li>
<li>Shows a progress dialog rather than freezing</li>
<li>Fixes a bug that I know at least one person exploited to make their game &#8220;undecompilable&#8221;</li>
</ul>
<p>Yes, it&#8217;s obfuscated. No, you still can&#8217;t have the source, though I&#8217;m wondering what would happen if I <strong>did</strong> release it.</p>
<p>As a final note, at least some good will come of this. The information collected in the making of this tool makes it possible for third party programs to compile exes using the GM runner. No, we haven&#8217;t investigated the legality of this exhaustively yet, but it will make programs like <a title="LateralGM" href="http://www.ismavatar.com/lgm">LateralGM</a> far more useful if we can do it.</p>
<p>edit: Fixed a bug with extensions, latest version is now 2.1</p>
<p><a title="Gm Decompiler v2" href="http://www.messy-mind.net/wp-content/uploads/2008/10/gmdecompiler_v2_1.jar">Gm Decompiler v2.1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messy-mind.net/game-maker/gm-decompiler-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Game Maker GUI</title>
		<link>http://www.messy-mind.net/game-maker/game-maker-gui/</link>
		<comments>http://www.messy-mind.net/game-maker/game-maker-gui/#comments</comments>
		<pubDate>Tue, 15 Apr 2008 08:05:30 +0000</pubDate>
		<dc:creator>GearGOD</dc:creator>
		
		<category><![CDATA[Game Maker]]></category>

		<category><![CDATA[eyecandy]]></category>

		<category><![CDATA[interface]]></category>

		<guid isPermaLink="false">http://www.messy-mind.net/game-maker/game-maker-gui/</guid>
		<description><![CDATA[Well, after a massive delay this thing is finally released. It is far, far from finished but I don&#8217;t use game maker anymore and I knew that if I don&#8217;t make it somewhat presentable and release it now, I&#8217;ll never do it. So it comes as-is. You will have to learn how to use it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.messy-mind.net/wp-content/uploads/2008/04/gui.png" rel="shadowbox"><img src="http://www.messy-mind.net/wp-content/uploads/2008/04/gui.thumbnail.png"/></a><br />
Well, after a massive delay this thing is finally released. It is far, far from finished but I don&#8217;t use game maker anymore and I knew that if I don&#8217;t make it somewhat presentable and release it now, I&#8217;ll never do it. So it comes as-is. You will have to learn how to use it by looking at the example content and reading the comments of the scripts.<br />
<br />
Its a real shame that I won&#8217;t be able to finish this. </p>
<p><a href='http://www.messy-mind.net/wp-content/uploads/2008/04/gui.zip' title='GM Gui'>GM Gui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messy-mind.net/game-maker/game-maker-gui/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Complete GM decompiler.</title>
		<link>http://www.messy-mind.net/game-maker/complete-gm-decompiler/</link>
		<comments>http://www.messy-mind.net/game-maker/complete-gm-decompiler/#comments</comments>
		<pubDate>Sat, 26 Jan 2008 07:04:31 +0000</pubDate>
		<dc:creator>GearGOD</dc:creator>
		
		<category><![CDATA[Game Maker]]></category>

		<category><![CDATA[decompiler]]></category>

		<category><![CDATA[yoyo games]]></category>

		<guid isPermaLink="false">http://www.messy-mind.net/game-maker/complete-gm-decompiler-for-versions-567-extensions/</guid>
		<description><![CDATA[I am not the author of this tool, I&#8217;m merely distributing it. It&#8217;s the result of a lot of work by several people. It is a complete decompiler. It will take an executable made by gm5-7 or an extension, and spit out a working gmd/gm6/gm7.
This is for educational purposes only, the documentation about the encryption [...]]]></description>
			<content:encoded><![CDATA[<p>I am not the author of this tool, I&#8217;m merely distributing it. It&#8217;s the result of a lot of work by several people. It is a complete decompiler. It will take an executable made by gm5-7 or an extension, and spit out a working gmd/gm6/gm7.</p>
<p>This is for educational purposes only, the documentation about the encryption and how its broken can be found on the internets.</p>
<p><a href='http://www.messy-mind.net/wp-content/uploads/2008/01/gmdecompiler.jar' title='GM Decompiler'>GM Decompiler</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messy-mind.net/game-maker/complete-gm-decompiler/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Slow movement</title>
		<link>http://www.messy-mind.net/news/slow-movement/</link>
		<comments>http://www.messy-mind.net/news/slow-movement/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 09:45:11 +0000</pubDate>
		<dc:creator>Wild-Tiger</dc:creator>
		
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.messy-mind.net/news/slow-movement/</guid>
		<description><![CDATA[We&#8217;ve both had problems with our PCs, my hard drive deciding to up and die, and GearGOD&#8217;s motherboard deciding to die (and hell, we replaced his graphics card too). Suffice to say, we&#8217;ve been moving slowly on our website and any content to do with it. But we&#8217;ll both be back up and running soon [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve both had problems with our PCs, my hard drive deciding to up and die, and GearGOD&#8217;s motherboard deciding to die (and hell, we replaced his graphics card too). Suffice to say, we&#8217;ve been moving slowly on our website and any content to do with it. But we&#8217;ll both be back up and running soon enough, and ready to at least start something.</p>
<p>Wish us luck.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.messy-mind.net/news/slow-movement/feed/</wfw:commentRss>
		</item>
		<item>
		<title>We have moved!</title>
		<link>http://www.messy-mind.net/news/we-have-moved/</link>
		<comments>http://www.messy-mind.net/news/we-have-moved/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 23:00:13 +0000</pubDate>
		<dc:creator>GearGOD</dc:creator>
		
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.messy-mind.net/news/we-have-moved/</guid>
		<description><![CDATA[Hello children. After a month of quietness, we&#8217;re back! And with a domain name this time. There was a swarm of problems with the move and most of them have been resolved, but some still linger. Most notably, clicking pictures won&#8217;t show their fancy zoomed version. I&#8217;m trying to figure it out but have no [...]]]></description>
			<content:encoded><![CDATA[<p>Hello children. After a month of quietness, we&#8217;re back! And with a domain name this time. There was a swarm of problems with the move and most of them have been resolved, but some still linger. Most notably, clicking pictures won&#8217;t show their fancy zoomed version. I&#8217;m trying to figure it out but have no idea.</p>
<p>More GM samples will be put up soon. I&#8217;m also thinking about completely scrapping the current theme. It&#8217;s based on a free theme I found  but we&#8217;ve changed almost everything in it and the leftovers of the original theme are causing more problems than good at this stage. If we do decide to work from scratch, what kind of colour theme would you like to see?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.messy-mind.net/news/we-have-moved/feed/</wfw:commentRss>
		</item>
		<item>
		<title>High quality terrain/tile transitions</title>
		<link>http://www.messy-mind.net/game-maker/high-quality-terraintile-transitions/</link>
		<comments>http://www.messy-mind.net/game-maker/high-quality-terraintile-transitions/#comments</comments>
		<pubDate>Mon, 22 Oct 2007 03:33:18 +0000</pubDate>
		<dc:creator>GearGOD</dc:creator>
		
		<category><![CDATA[Game Maker]]></category>

		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://gear.64digits.com/blog/geargods/high-quality-terraintile-transitions/</guid>
		<description><![CDATA[A few nights ago a magical fairy came to me in my dreams and told me, &#8216;all those executables which you lost the editables to, they&#8217;re actually editables!&#8217; I thought the fairy was full of shit but what do you know, the next morning I looked in my GM folder and lo and behold, there [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://messy-mind.net/blog/wp-content/uploads/2007/10/transitions.jpg" rel="shadowbox"><img src="http://messy-mind.net/blog/wp-content/uploads/2007/10/transitions.thumbnail.jpg"/></a><br />
A few nights ago a magical fairy came to me in my dreams and told me, &#8216;all those executables which you lost the editables to, they&#8217;re actually editables!&#8217; I thought the fairy was full of shit but what do you know, the next morning I looked in my GM folder and lo and behold, there appeared editables for things I lost the source to!</p>
<p>In celebration, here is the editable to something really neat I wrote a while ago. It&#8217;s a ridiculously fast (for what it does) terrain renderer which supports spec highlights and I would bet, beats using tiles on occassion. It&#8217;s an extension of my metaballs rendering concept applied across any number of tile layers without involving a second surface.<br />
It&#8217;s just a proof of concept for an idea I never got to finish and polish, but hey so is a lot of other stuff I put here. Once again, look, learn, use. Or, attempt to blindly integrate it in your game and hope for the best.</p>
<p>Oh by the way. It was written back in gm6, and gm6 had a stupid bug to do with surfaces, which I had to cheat around. In gm7 it seems to have been dealt with so my workaround actually causes the inverse of the bug to happen. So if you&#8217;re using it in gm7, open the startup script and change the values of fx and fy to 1.</p>
<p><a href='http://messy-mind.net/blog/wp-content/uploads/2007/10/sbt.gm6' title='Surface Based Terrain'>Surface Based Terrain</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messy-mind.net/game-maker/high-quality-terraintile-transitions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lumines type &#8217;scanner&#8217; with fireflies</title>
		<link>http://www.messy-mind.net/game-maker/fireflies/</link>
		<comments>http://www.messy-mind.net/game-maker/fireflies/#comments</comments>
		<pubDate>Tue, 16 Oct 2007 05:43:52 +0000</pubDate>
		<dc:creator>GearGOD</dc:creator>
		
		<category><![CDATA[Game Maker]]></category>

		<category><![CDATA[effects]]></category>

		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://gear.64digits.com/blog/game-maker/fireflies/</guid>
		<description><![CDATA[Something neat I ran into today; a little proof of concept for a Lumines kind of effect. Only, prettier.
Fireflies
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.messy-mind.net/blog/wp-content/uploads/2007/10/scanner.jpg" rel="shadowbox"><img src="http://messy-mind.net/blog/wp-content/uploads/2007/10/scanner.thumbnail.jpg"/></a><br />
Something neat I ran into today; a little proof of concept for a Lumines kind of effect. Only, prettier.</highslide></p>
<p><a href="http://messy-mind.net/blog/wp-content/uploads/2007/10/scanner.gm6" title="Scanner">Fireflies</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.messy-mind.net/game-maker/fireflies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wild-Tiger&#8217;s contribution</title>
		<link>http://www.messy-mind.net/wild-tigers/xna-tutorials/</link>
		<comments>http://www.messy-mind.net/wild-tigers/xna-tutorials/#comments</comments>
		<pubDate>Thu, 11 Oct 2007 14:07:36 +0000</pubDate>
		<dc:creator>Wild-Tiger</dc:creator>
		
		<category><![CDATA[Wild-Tiger's]]></category>

		<guid isPermaLink="false">http://gear.64digits.com/blog/wild-tigers/xna-tutorials/</guid>
		<description><![CDATA[Hello, ladies and gentlemen. I am Wild-Tiger, the currently unknown other half to this website. I will, as soon as it is deemed humanly possible for me (due to a current rush of university work) write tutorials and games for the XNA section of this website. Currently my thoughts were in the vicinity of a [...]]]></description>
			<content:encoded><![CDATA[<p>Hello, ladies and gentlemen. I am Wild-Tiger, the currently unknown other half to this website. I will, as soon as it is deemed humanly possible for me (due to a current rush of university work) write tutorials and games for the XNA section of this website. Currently my thoughts were in the vicinity of a video tutorial based on a step-by-step process through an XNA game of something akin to space invaders. And this won&#8217;t be some how-to C# video - considering those have been done before.</p>
<p>What are people&#8217;s thoughts on this? I figure to cover such topics as:</p>
<li>Meaningful design and analysis before the producing stage - and why it&#8217;s a good idea to do this. </li>
<li>Figuring out the basis of how and -why- I want to do it this way. </li>
<li>Showing briefly the use of a UML and how it can used to design a program</li>
<li>A slow step by step building classes from my design: using implementations like interfaces and abstract classes - proper re-useability. Etc. </li>
<li>
Building the game from the ground up in a way that will make sense to the viewer.</li>
<li>And later, adding cool effects and things so it&#8217;s not just some boring tutorial video with nothing pretty made at the end (I&#8217;m sure GearGOD can help me with this.)</li>
<p>So at the end of this little project, I should have maybe 8-9 videos and a finished arcade game.</p>
<p>Comments, suggestions, ranting - anything is welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.messy-mind.net/wild-tigers/xna-tutorials/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
