<?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>Galfar's Lair</title>
	<atom:link href="http://galfar.vevb.net/wp/feed/" rel="self" type="application/rss+xml" />
	<link>http://galfar.vevb.net/wp</link>
	<description>Oh hai!</description>
	<lastBuildDate>Sun, 13 May 2012 21:42:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Colonization Graphics Extractor Found</title>
		<link>http://galfar.vevb.net/wp/2012/colonization-graphics-extractor-found/</link>
		<comments>http://galfar.vevb.net/wp/2012/colonization-graphics-extractor-found/#comments</comments>
		<pubDate>Sun, 13 May 2012 16:49:24 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Personal & Interests]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=967</guid>
		<description><![CDATA[From time to time I would check the web for some information about Colonization file formats but without much success. Problem is that the game uses a bit obscure compression that no one seemed to be able to figure out. &#8230; <a href="http://galfar.vevb.net/wp/2012/colonization-graphics-extractor-found/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>From time to time I would check the web for some information about Colonization file formats but without much success. Problem is that the game uses a bit obscure compression that no one seemed to be able to figure out. There were only some simple DOS tools based on disassembly of Colonization executable or its map editor.</p>
<p>Finally, I got lucky a few days ago. User thomasd of CivFanatics forum posted a Colonization image viewer written in Java here: <a href="http://forums.civfanatics.com/showthread.php?t=256665&amp;page=2" target="_blank">http://forums.civfanatics.com/showthread.php?t=256665&amp;page=2</a>. This is in fact based on code from ScummVM. What&#8217;s the connection between Colonization and a program for playing old point-and-click adventure games? It turns out one of the adventure engines supported by ScummVM is MADS which is short for MicroProse Adventure Development System. And as Colonization is a MicroProse game, some code sharing between their games took place (at least the file compression method MADSPACK). So now if you want to write your own Colonization image extractor you can dig deep into history of ScummVM&#8217;s Git repository (as support for MADS engine seems to have been removed) or try your luck with Java decompiler <img src='http://galfar.vevb.net/wp/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="attachment_977" class="wp-caption aligncenter" style="width: 410px"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2012/05/ColonizeDos2.png"><img class="size-medium wp-image-977" title="Colonization - Jamestown Conquered" src="http://galfar.vevb.net/wp/wp-content/uploads/2012/05/ColonizeDos2-400x250.png" alt="" width="400" height="250" /></a><p class="wp-caption-text">Colonization - Jamestown Conquered</p></div>
<div id="attachment_978" class="wp-caption aligncenter" style="width: 410px"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2012/05/ColonizeDos1.png"><img class="size-medium wp-image-978" title="Colonization - Fortress of Quebec" src="http://galfar.vevb.net/wp/wp-content/uploads/2012/05/ColonizeDos1-400x250.png" alt="" width="400" height="250" /></a><p class="wp-caption-text">Colonization - Fortress of Quebec</p></div>
<p>If you want to play Colonization today: DOS version runs ok even in Windows XP. For newer 64 bit Windows you have to use DOSBox or virtualize some old OS (not sure if it works in 32 bit version of Win7).</p>
<p>There is also Colonization for Windows from 1995, a port of the game for Windows 3.1 (Amiga and Mac version were also produced). It features slightly updated graphics (at least unit sprites are in higher resolution) but also not so nice user interface (some unskinned Windows controls etc.). Big difference between DOS and Windows version is that the later runs at the resolution of your desktop so you can see much larger part of the world map at once (maybe not so much in 1995). The downside is that as a 16 bit application it won&#8217;t run in 64 bit Windows OS.</p>
<div id="attachment_970" class="wp-caption aligncenter" style="width: 550px"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2012/05/Colonize95Win.png"><img class="size-large wp-image-970" title="Colonization for Windows" src="http://galfar.vevb.net/wp/wp-content/uploads/2012/05/Colonize95Win-540x337.png" alt="" width="540" height="337" /></a><p class="wp-caption-text">Colonization for Windows</p></div>
<p>Game resources in Win version of Colonization are stored differently from DOS version. Sounds are just individual WAV files in game folder, music is CD audio, and spites &amp; tiles are stored as resources in DLL libraries.</p>
<h3>Some Links</h3>
<p>Here&#8217;s the official Colonization trailer from 1994:</p>
<p><iframe src="http://www.youtube.com/embed/d5aIuL2gjJ8" frameborder="0" width="480" height="360"></iframe></p>
<p>And some links to a few fan pages:</p>
<ul>
<li><a href="http://www.colonization.biz" target="_blank">http://www.colonization.biz</a></li>
<li><a href="http://www.colonizationfans.com/game-topics.html" target="_blank">http://www.colonizationfans.com/game-topics.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2012/colonization-graphics-extractor-found/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photo Sorting Tool</title>
		<link>http://galfar.vevb.net/wp/2011/photo-sorting-tool/</link>
		<comments>http://galfar.vevb.net/wp/2011/photo-sorting-tool/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 23:15:56 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Pascal & Delphi]]></category>
		<category><![CDATA[PhotoMixer]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=825</guid>
		<description><![CDATA[Let&#8217;s say you have just spent few weeks in some exotic country with a bunch of friends. Everyone had a digital camera and made thousands of photos. Now you have several directories with hordes of oddly named photos and you &#8230; <a href="http://galfar.vevb.net/wp/2011/photo-sorting-tool/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s say you have just spent few weeks in some exotic country with a bunch of friends. Everyone had a digital camera and made thousands of photos. Now you have several directories with hordes of oddly named photos and you just want see all of them in the order they were taken. Throwing them all in one folder and setting file ordering by date might help but everyone&#8217;s camera can have a different internal time. File system dates can also be lost on their way to you (FTP upload etc.).</p>
<p>Being a programmer, rather that searching for some program on the Internet, I wrote my own quick and dirty command line tool for this task (mostly hard-coded paths etc.) in mid 2010. This year, I added GUI (where all the settings can be adjusted), some more date &amp; time functions, and basically made the whole thing usable. And finally, beta release of PhotoMixer is available.<br />
<span id="more-825"></span></p>
<h2>Download</h2>
Note: There is a file embedded within this post, please visit this post to download the file.
<p>Please report any bugs and problems you encounter. Ideas for new features as well!</p>
<h2>Overview</h2>
<p>PhotoMixer takes <em>photo sources</em> as input and mixes/sorts them. Photo source is a folder with photos that have different properties than some other source. Most often, it&#8217;s from a different person and/or taken with different camera. PhotoMixer takes all the photos from all sources and puts them all in one output folder with file names that contain timestamps (so that the files appear in the same order regardless if you sort them by name, type, or date).</p>
<p>The most important this is: <em>it can adjust date &amp; time of photos from each source automatically</em>. As the result, you now have a folder with all the photos from your trip in the right order even though they originally came from ten people with all of them having wrong date &amp; time setting in their cameras. Where&#8217;s the catch? Well, there should be one photo that each of these people took at nearly the same time. These reference photos are then used by PhotoMixer to synchronize the sources.</p>
<p>Each source can be synchronized using reference photo or just by explicit time shift. Photo date and time is taken from embedded EXIF metadata that&#8217;s generated by digital camera and inserted in JPEG file. Only when, for some reason, EXIF is not present, file system date is used instead. When using reference photo synchronization one of the sources must be designated as <em>main reference source</em>. That is the source whose dates will not be modified and all other sources will be shifted in regard to date differences between their reference photo and that of the main source.</p>
<p>PhotoMixer also offers some useful tools for related tasks.</p>
<h2>Usage Guide</h2>
<p>PhotoMixer employs tabbed user interface where the first tab contains output settings and log. Additional tabs define photo sources. When you start the tool for the first time new source is created, and you can start setting it up and adding more sources. When you are done with sources, go to <em>Settings</em> tab, adjust output options, and finally click <em>Run</em> button.</p>
<div id="attachment_901" class="wp-caption aligncenter" style="width: 410px"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2011/12/Capture2.png"><img class="size-medium wp-image-901" title="Photo source options" src="http://galfar.vevb.net/wp/wp-content/uploads/2011/12/Capture2-400x347.png" alt="" width="400" height="347" /></a><p class="wp-caption-text">Photo source options</p></div>
<p>For each source you can select folder with photos and type of synchronization. For sync by reference photo you must select this photo and for explicit shift you provide positive or negative time in seconds.</p>
<div id="attachment_900" class="wp-caption aligncenter" style="width: 410px"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2011/12/Capture1.png"><img class="size-medium wp-image-900" title="Settings and output tab" src="http://galfar.vevb.net/wp/wp-content/uploads/2011/12/Capture1-400x347.png" alt="" width="400" height="347" /></a><p class="wp-caption-text">Settings and output tab</p></div>
<p>On <em>Settings</em> tab select the output folder, base name of the generated files (will be named &#8220;BaseName TimeStamp.jpg&#8221;), and main reference source used for synchronization.</p>
<p>All the options and source definitions can be saved for later usage and restored using the <em>Save</em> and <em>Load</em> actions in the <em>Tools</em> menu. There is also tool for clearing the output folder and two little more complex tools: <em>Set Photo Date &amp; Time</em> and <em>Set File Time from Photo Metadata</em>.</p>
<div id="attachment_902" class="wp-caption aligncenter" style="width: 410px"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2011/12/Capture3.png"><img class="size-medium wp-image-902" title="&quot;Set Photo Date &amp; Time&quot; tool" src="http://galfar.vevb.net/wp/wp-content/uploads/2011/12/Capture3-400x200.png" alt="" width="400" height="200" /></a><p class="wp-caption-text">&quot;Set Photo Date &amp; Time&quot; tool</p></div>
<p>If you totally lost all date &amp; time info about some photos and you want at least something (e.g. you use some photo organizer and want some filtering based on year &amp; month to work) you can generate it using Set Photo Date &amp; Time tool. Some base date &amp; time is selected and each photo can have optional time increment (e.g. first photo has &#8220;base time&#8221;, second has &#8220;base time + 5 minutes&#8221;, another one has &#8220;base time + 10 minutes&#8221;, etc.).</p>
<p>Set File Time from Photo Metadata tool can be used to restore file system date &amp; time according to metadata inside the photo.</p>
<h2>Nice to have features for future version</h2>
<p>Some are definitely going to be included, some are more like pipe dreams.</p>
<ul>
<li>Detect blurred photos that you just want to delete.</li>
<li>Detect similar images &#8211; often more people take a photo of the same thing but you want to keep just one (the best looking one).</li>
<li>Resampling of output photos to different resolution. Although this is a lossy operation, it has its uses.</li>
<li>Create embedded JPEG thumbnails where missing (they&#8217;re embedded by cameras but some photo editing program could remove it).</li>
<li>Lossless rotation of MJPEG videos from cameras (90/180/270 rotations).</li>
<li>Strip junk data streams (e.g. after lossless rotation in Irfan the old data stream is kept in the file resulting in 2x bigger file).</li>
<li>Linux and Mac OS X version (at least with CLI).</li>
<li>Something to deal with camera orientation (when taking the photo). Some cameras have positioning sensor and store this information in metadata so the program could rotate them accordingly. For others, some GUI that allows simple and fast manual rotations would be nice. Probably redundant: probably just do it in Live Gallery/Picassa/whatever.</li>
</ul>
<h2>The End</h2>
<p>Sorting of about 3000 photos too about 2 minutes on my desktop (nearly all of that time is spent reading EXIF metadata from the files). Here are some photos from the &#8220;last batch&#8221; (panoramas made in Microsoft ICE):</p>
<p><a href="http://galfar.vevb.net/wp/wp-content/uploads/2011/12/Island2.jpg"><img class="aligncenter size-large wp-image-908" title="Iceland" src="http://galfar.vevb.net/wp/wp-content/uploads/2011/12/Island2-800x299.jpg" alt="" width="584" height="218" /></a><br />
<a href="http://galfar.vevb.net/wp/wp-content/uploads/2011/12/Island1.jpg"><img class="aligncenter size-large wp-image-907" title="Iceland" src="http://galfar.vevb.net/wp/wp-content/uploads/2011/12/Island1-800x330.jpg" alt="" width="584" height="240" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2011/photo-sorting-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arena and Daggerfall Findings 2011</title>
		<link>http://galfar.vevb.net/wp/2011/arena-and-daggerfall-findings/</link>
		<comments>http://galfar.vevb.net/wp/2011/arena-and-daggerfall-findings/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 19:51:01 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[TES]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=827</guid>
		<description><![CDATA[Random bits about The Elder Scrolls: Arena and Daggerfall for the fans of these two old games. Daggerfall Just a few days ago I&#8217;ve stumbled upon new attempt at bringing Daggerfall back to life. Ruins of Hill Deep is a &#8230; <a href="http://galfar.vevb.net/wp/2011/arena-and-daggerfall-findings/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Random bits about The Elder Scrolls: Arena and Daggerfall for the fans of these two old games.</p>
<p><span id="more-827"></span></p>
<h1>Daggerfall</h1>
<p>Just a few days ago I&#8217;ve stumbled upon new attempt at bringing Daggerfall back to life. <a href="http://www.ruinsofhilldeep.com" target="_blank">Ruins of Hill Deep</a> is a total conversion mod (like quite a few for Morrowind and Oblivion). Author of the RoHD is <a href="http://www.dfworkshop.net/" target="_blank">Interkarma</a>, well known person in Daggerfall fan community. He wrote quite a few tools for Daggerfall over the years and the new 3D engine is based on their code base. Well, good luck with the project and hopefully we&#8217;ll finally see some Daggerfall action again soon.</p>
<p>Another remake currently in works is DaggerXL (mentioned in <a href="http://galfar.vevb.net/wp/2009/daggerfall-for-free/" title="Daggerfall for Free!">Daggerfall for Free!</a>). Unfortunately, after a really promising start its development slowed down so let&#8217;s hope it will pick up the pace again (the author is currently merging several of his engines for remakes, like Dark Forces and Blood, into one shared engine).</p>
<p>Last but not least, Daggerfall turned 15 this August. So let&#8217;s watch this official trailer:<br />
<object style="height: 390px; width: 640px;" width="640" height="360" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/I_MY0ihuJZc?version=3" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><embed style="height: 390px; width: 640px;" width="640" height="360" type="application/x-shockwave-flash" src="http://www.youtube.com/v/I_MY0ihuJZc?version=3" allowFullScreen="true" allowScriptAccess="always" allowfullscreen="true" allowscriptaccess="always" /></object></p>
<p>Or a guy with shotgun wreaking havoc among Daggerfall&#8217;s popular town guards:</p>
<p><object style="height: 390px; width: 640px;" width="640" height="360" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/VADd_h_Ujzs?version=3" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><embed style="height: 390px; width: 640px;" width="640" height="360" type="application/x-shockwave-flash" src="http://www.youtube.com/v/VADd_h_Ujzs?version=3" allowFullScreen="true" allowScriptAccess="always" allowfullscreen="true" allowscriptaccess="always" /></object></p>
<h1>Arena</h1>
<p>I tried running TES: Arena on Android phone recently. There&#8217;s a free DOSBox port for Android called <a title="aDOSBox" href="http://androiddosbox.appspot.com/" target="_blank">aDOSBox</a>. On my Nexus S (1Ghz ARM CPU) aDOSBox runs Arena at about 1 FPS. So it is far from playable speed but new phones could get usable frame rates maybe in a year or two (on Galaxy S II it&#8217;s already noticeably faster). Main problem is controlling the game since there are nearly no usable buttons/keys on the phone. Also Arena is quite &#8220;mouse heavy&#8221; as you need to move the mouse holding the right button to swing your weapon.</p>
<p>Apart from free a DOSBox, there is also paid AnDOSBox that is supposed to be faster. See this <a href="http://www.youtube.com/watch?v=ICXrwgd3QJs" target="_blank">youtube video</a> of Daggerfall running on HTC Desire (1GHz CPU as well) which seems to be faster than Arena in aDOSBox (confused by the similar name? They also have nearly identical icon!).  Do you know any other alternative for running Arena on smart phones?</p>
<div id="attachment_877" class="wp-caption aligncenter" style="width: 410px"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2011/10/arena-android01.jpg"><img class="size-medium wp-image-877" title="Some city in Tamriel" src="http://galfar.vevb.net/wp/wp-content/uploads/2011/10/arena-android01-400x203.jpg" alt="" width="400" height="203" /></a><p class="wp-caption-text">Some city in Tamriel</p></div>
<div id="attachment_874" class="wp-caption aligncenter" style="width: 410px"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2011/10/arena-android02.jpg"><img class="size-medium wp-image-874" title="Arena character overview" src="http://galfar.vevb.net/wp/wp-content/uploads/2011/10/arena-android02-400x204.jpg" alt="" width="400" height="204" /></a><p class="wp-caption-text">Arena character overview</p></div>
<h3>Game Resources</h3>
<p>New tool for extracting and converting Arena files appeared on UESP site last year. It&#8217;s command line utility based on WinArena (mentioned in post <a href="http://galfar.vevb.net/wp/2010/homam-2-and-arena-remakes/" title="HoMaM 2 and Arena remakes">HoMaM 2 and Arena remakes</a>). You can get the source code in C at <a href="http://www.uesp.net/wiki/File:ArenaFile-src_0.3.2.zip" target="_blank">UESP Arena-Files</a>.</p>
<p>I&#8217;ve been thinking about creating some GUI for Arena files browsing and extraction. Daggerfall has great tools created by community for fiddling with its assets but Arena not so much. File format decoding would have to be based on WinArena too, as it&#8217;s the known only tool (and stuff based on it) that can read more than just some textures or extract file archives. No file format documentation can be found on the net either (though there&#8217;s lot of info for Daggerfall formats). So WinArena&#8217;s code is basically the only documentation/reference available.</p>
<p>And finally, the official Arena trailer:<br />
<object style="height: 390px; width: 640px;" width="640" height="360" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/3Qiz8e3si90?version=3" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><embed style="height: 390px; width: 640px;" width="640" height="360" type="application/x-shockwave-flash" src="http://www.youtube.com/v/3Qiz8e3si90?version=3" allowFullScreen="true" allowScriptAccess="always" allowfullscreen="true" allowscriptaccess="always" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2011/arena-and-daggerfall-findings/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Enabling Repository Snapshots in Mercurial Browser at SF.net</title>
		<link>http://galfar.vevb.net/wp/2011/enabling-repository-snapshots-in-mercurial-browser-at-sf-net/</link>
		<comments>http://galfar.vevb.net/wp/2011/enabling-repository-snapshots-in-mercurial-browser-at-sf-net/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 12:26:34 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=839</guid>
		<description><![CDATA[Imaging&#8217;s code repository at SourceForge has been migrated from Subversion version control system to Mercurial. However, repository browser for Mercurial at SF.net doesn&#8217;t provide &#8220;download tarball&#8221; feature out of the box (that browser for SVN does). It&#8217;s a simple way &#8230; <a href="http://galfar.vevb.net/wp/2011/enabling-repository-snapshots-in-mercurial-browser-at-sf-net/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Imaging&#8217;s code repository at SourceForge has been migrated from Subversion version control system to Mercurial. However, repository browser for Mercurial at SF.net doesn&#8217;t provide &#8220;download tarball&#8221; feature out of the box (that browser for SVN does). It&#8217;s a simple way for users that don&#8217;t want to install VCS clients they don&#8217;t normally use to download the current revision of your project in single archive.<br />
Fortunatelly, enabling snapshot downloads for Mercurial is possible using SF.net&#8217;s shell service:</p>
<ul>
<li>Login to your shell service at SF.net (ssh to username,projectname@shell.sourceforge.net) and navigate to your project&#8217;s repository. You start in your home dir (for me that&#8217;s /home/users/g/ga/galfar) and your project&#8217;s repo dir might look like /home/scm_hg/i/im/imaginglib/imaginglib/.hg/.</li>
<li>There you create a new file named hgrc (repository configuration) or edit the existing one.</li>
<li>Append the following two lines to that config file:
<pre class="brush: plain; title: ; notranslate">
[web]
allow_archive = gz zip</pre>
</li>
<li>Save the config and enjoy downloading zip and tar.gz archives! You&#8217;ll see new zip and gz items in the top menu of repo browser (e.g. summary | shortlog | changelog | graph | tags | branches | files | zip | gz) when viewing the revisions and also corresponding two icons in repository list that can be used to get the snapshot of top revision of each repository.</li>
</ul>
<p><a href="http://galfar.vevb.net/wp/wp-content/uploads/2011/08/repo1.png"><img class="aligncenter size-medium wp-image-848" title="Hg repo browser witch snapshots" src="http://galfar.vevb.net/wp/wp-content/uploads/2011/08/repo1-400x117.png" alt="Hg repo browser witch snapshots" width="400" height="117" /></a></p>
<p><a href="http://galfar.vevb.net/wp/wp-content/uploads/2011/08/repo2.png"><img class="aligncenter size-medium wp-image-849" title="Hg repo browser witch snapshots" src="http://galfar.vevb.net/wp/wp-content/uploads/2011/08/repo2-400x365.png" alt="" width="400" height="365" /></a></p>
<p>PS: You can convert whole repository to Mercurial with all the history and tags simply by using <a href="http://mercurial.selenic.com/wiki/ConvertExtension" target="_blank">Convert extension</a>. It takes quite a lot of time when you convert remote repository directly but the conversion continues where it left off when you get timeout or some network problem and run the conversion again.</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2011/enabling-repository-snapshots-in-mercurial-browser-at-sf-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>16bit half float in Pascal/Delphi</title>
		<link>http://galfar.vevb.net/wp/2011/16bit-half-float-in-pascaldelphi/</link>
		<comments>http://galfar.vevb.net/wp/2011/16bit-half-float-in-pascaldelphi/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 14:10:41 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Pascal & Delphi]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=801</guid>
		<description><![CDATA[Floating point numbers with 16 bits of precision are used mostly in computer graphics. They are also called half precision floating point numbers (as having half the bits of single precision 32bit floats). There&#8217;s one sign bit, five bit exponent, &#8230; <a href="http://galfar.vevb.net/wp/2011/16bit-half-float-in-pascaldelphi/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Floating point numbers with 16 bits of precision are used mostly in computer graphics. They are also called half precision floating point numbers (as having half the bits of single precision 32bit floats). There&#8217;s one sign bit, five bit exponent, and ten bits for mantissa. Half floats are not really meant to be used for arithmetic computations due to the limited precision (and no support in common CPUs/FPUs).</p>
<p>Half floats first appeared in early 2000s as samples in images and textures. Floats provide higher dynamic range than what is available with regular 8bit or 16bit integer samples. On the other hand, commonly used single and double precision floats have much higher memory cost per pixel. Half floats have more reasonable memory requirements and their precision is adequate for many usages in imaging.</p>
<p>16bit float formats have been supported by ATI and NVidia GPUs for many years. I&#8217;m not sure about other IHVs but at least Direct3D 10 capable GPUs should all support it.</p>
<p>Read on if your interested how to convert between half and single precision floats (Object Pascal code).</p>
<p><span id="more-801"></span></p>
<h3>Half/Single Conversion code</h3>
<p>Finally, here&#8217;s the code for converting to half floats and back to single precision float. It&#8217;s based on C++ code from OpenEXR library (half class).</p>
<h4>First some types and constants</h4>
<p>Note that THalfFloat type is just an alias for Word.</p>
<pre class="brush: delphi; title: ; notranslate">
type
  THalfFloat = type Word;

const
  HalfMin:     Single = 5.96046448e-08; // Smallest positive half
  HalfMinNorm: Single = 6.10351562e-05; // Smallest positive normalized half
  HalfMax:     Single = 65504.0;        // Largest positive half
  // Smallest positive e for which half (1.0 + e) != half (1.0)
  HalfEpsilon: Single = 0.00097656;
  HalfNaN:     THalfFloat = 65535;
  HalfPosInf:  THalfFloat = 31744;
  HalfNegInf:  THalfFloat = 64512;
</pre>
<h4>Single precision float to half</h4>
<pre class="brush: delphi; title: ; notranslate">
function FloatToHalf(Float: Single): THalfFloat;
var
  Src: LongWord;
  Sign, Exp, Mantissa: LongInt;
begin
  Src := PLongWord(@Float)^;
  // Extract sign, exponent, and mantissa from Single number
  Sign := Src shr 31;
  Exp := LongInt((Src and $7F800000) shr 23) - 127 + 15;
  Mantissa := Src and $007FFFFF;

  if (Exp &gt; 0) and (Exp &lt; 30) then
  begin
    // Simple case - round the significand and combine it with the sign and exponent
    Result := (Sign shl 15) or (Exp shl 10) or ((Mantissa + $00001000) shr 13);
  end
  else if Src = 0 then
  begin
    // Input float is zero - return zero
    Result := 0;
  end
  else
  begin
    // Difficult case - lengthy conversion
    if Exp &lt;= 0 then
    begin
      if Exp &lt; -10 then
      begin
        // Input float's value is less than HalfMin, return zero
         Result := 0;
      end
      else
      begin
        // Float is a normalized Single whose magnitude is less than HalfNormMin.
        // We convert it to denormalized half.
        Mantissa := (Mantissa or $00800000) shr (1 - Exp);
        // Round to nearest
        if (Mantissa and $00001000) &gt; 0 then
          Mantissa := Mantissa + $00002000;
        // Assemble Sign and Mantissa (Exp is zero to get denormalized number)
        Result := (Sign shl 15) or (Mantissa shr 13);
      end;
    end
    else if Exp = 255 - 127 + 15 then
    begin
      if Mantissa = 0 then
      begin
        // Input float is infinity, create infinity half with original sign
        Result := (Sign shl 15) or $7C00;
      end
      else
      begin
        // Input float is NaN, create half NaN with original sign and mantissa
        Result := (Sign shl 15) or $7C00 or (Mantissa shr 13);
      end;
    end
    else
    begin
      // Exp is &gt; 0 so input float is normalized Single

      // Round to nearest
      if (Mantissa and $00001000) &gt; 0 then
      begin
        Mantissa := Mantissa + $00002000;
        if (Mantissa and $00800000) &gt; 0 then
        begin
          Mantissa := 0;
          Exp := Exp + 1;
        end;
      end;

      if Exp &gt; 30 then
      begin
        // Exponent overflow - return infinity half
        Result := (Sign shl 15) or $7C00;
      end
      else
        // Assemble normalized half
        Result := (Sign shl 15) or (Exp shl 10) or (Mantissa shr 13);
    end;
  end;
end;
</pre>
<h4>Half to single precision float</h4>
<pre class="brush: delphi; title: ; notranslate">
function HalfToFloat(Half: THalfFloat): Single;
var
  Dst, Sign, Mantissa: LongWord;
  Exp: LongInt;
begin
  // Extract sign, exponent, and mantissa from half number
  Sign := Half shr 15;
  Exp := (Half and $7C00) shr 10;
  Mantissa := Half and 1023;

  if (Exp &gt; 0) and (Exp &lt; 31) then
  begin
    // Common normalized number
    Exp := Exp + (127 - 15);
    Mantissa := Mantissa shl 13;
    Dst := (Sign shl 31) or (LongWord(Exp) shl 23) or Mantissa;
    // Result := Power(-1, Sign) * Power(2, Exp - 15) * (1 + Mantissa / 1024);
  end
  else if (Exp = 0) and (Mantissa = 0) then
  begin
    // Zero - preserve sign
    Dst := Sign shl 31;
  end
  else if (Exp = 0) and (Mantissa &lt;&gt; 0) then
  begin
    // Denormalized number - renormalize it
    while (Mantissa and $00000400) = 0 do
    begin
      Mantissa := Mantissa shl 1;
      Dec(Exp);
    end;
    Inc(Exp);
    Mantissa := Mantissa and not $00000400;
    // Now assemble normalized number
    Exp := Exp + (127 - 15);
    Mantissa := Mantissa shl 13;
    Dst := (Sign shl 31) or (LongWord(Exp) shl 23) or Mantissa;
    // Result := Power(-1, Sign) * Power(2, -14) * (Mantissa / 1024);
  end
  else if (Exp = 31) and (Mantissa = 0) then
  begin
    // +/- infinity
    Dst := (Sign shl 31) or $7F800000;
  end
  else //if (Exp = 31) and (Mantisa &lt;&gt; 0) then
  begin
    // Not a number - preserve sign and mantissa
    Dst := (Sign shl 31) or $7F800000 or (Mantissa shl 13);
  end;

  // Reinterpret LongWord as Single
  Result := PSingle(@Dst)^;
end;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2011/16bit-half-float-in-pascaldelphi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deskewing Scanned Documents</title>
		<link>http://galfar.vevb.net/wp/2011/deskewing-scanned-documents/</link>
		<comments>http://galfar.vevb.net/wp/2011/deskewing-scanned-documents/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 23:16:57 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Pascal & Delphi]]></category>
		<category><![CDATA[Vampyre Imaging Library]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=777</guid>
		<description><![CDATA[Some time ago I wrote a simple command line tool for deskewing scanned documents called Deskew. Technically, it&#8217;s a rotation since angles are preserved and skew transformation doesn&#8217;t do that. However, deskewing is commonly used term in this context. My &#8230; <a href="http://galfar.vevb.net/wp/2011/deskewing-scanned-documents/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Some time ago I wrote a simple command line tool for deskewing scanned documents called <em>Deskew</em>. Technically, it&#8217;s a rotation since angles are preserved and skew transformation doesn&#8217;t do that. However, deskewing is commonly used term in this context.</p>
<div id="attachment_782" class="wp-caption aligncenter" style="width: 410px"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2010/12/deskew2.jpg"><img class="size-medium wp-image-782" title="Deskewing some smart paper" src="http://galfar.vevb.net/wp/wp-content/uploads/2010/12/deskew2-400x266.jpg" alt="" width="400" height="266" /></a><p class="wp-caption-text">Deskewing some smart paper</p></div>
<p>My approach is fairly common for this problem &#8211; rotation angle is first determined using <a href="http://en.wikipedia.org/wiki/Hough_transform" target="_blank">Hough transform</a> and then the image is rotated accordingly. Classical Hough transform is able identify lines in the image and it was later extended to allow detection of any arbitrary shapes.</p>
<p>Lines of text can be thought of as horizontal lines in the image. In a skewed scanned document all the lines will be rotated by some small angle. We can start with the equation of the line <em>y = k <em>·</em> x + q</em>. Since we&#8217;re interested in the angle, we can rewrite it as <em>y = (sin(α) / cos(α)) <em>·</em> x + q</em>. Finally, we can rearrange it as <em>y <em>·</em> cos(α) − x · sin(α) = d</em>. Now every point <em>[x, y]</em> in the image can have infinite number of lines going through it, where each is defined by two parameters: angle <em>α</em> and distance from the origin <em>d</em>.</p>
<p>We want to consider lines only for certain points of input image. Ideally, that would be the base lines on which the &#8220;text is sitting&#8221;. Simple way of determining these points is to check for black pixels which have white pixels just below them. Now for each of the classified points, we determine parameters <em>α</em> and <em>d</em> for all the lines that go through them. To get some finite number of lines, we calculate <em>d</em> for angles <em>α</em> from a certain range (I use angle step of 0.1 degrees). We want to find a line that intersects as many classified points as possible – an accumulator is used to store &#8220;votes&#8221; for each calculated line. For each point that is believed to be on the text base line, we add one vote for each line that intersects it. At the end, we find the top lines that have the most votes. Ideally, these are the base lines of all lines of text in the document. Finally, we get the rotation angle by averaging angle <em>α</em> of the top lines and rotate the whole image accordingly.</p>
<p>Important part is that one: <em>&#8220;check for black pixels which have white pixels just below&#8221;</em>. What&#8217;s black and white is determined by comparing value of the current pixel against some given threshold. For images where background is plain white and the text is black it&#8217;s easy just to use 0.5 as the threshold. But when the background/foreground distinction is not so sharp calculating the threshold adaptively based on the current image can be very useful. <em>Deskew</em> supports both adaptive threshold calculation as well as specifying constant threshold as command line parameter.</p>
<div id="attachment_781" class="wp-caption aligncenter" style="width: 410px"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2010/12/deskew1.jpg"><img class="size-medium wp-image-781" title="Deskewing some math exercise" src="http://galfar.vevb.net/wp/wp-content/uploads/2010/12/deskew1-400x261.jpg" alt="" width="400" height="261" /></a><p class="wp-caption-text">Deskewing some math exercise</p></div>
<p>Implementation is written in Object Pascal and uses Imaging library for reading and writing various image file formats. There are precompiled binaries for 32bit Windows and Linux, other platforms can be built from sources using Free Pascal compiler (you need Imaging library for compilation). Archive also contains few test images.</p>
Note: There is a file embedded within this post, please visit this post to download the file.
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2011/deskewing-scanned-documents/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Lego Space</title>
		<link>http://galfar.vevb.net/wp/2010/lego-space/</link>
		<comments>http://galfar.vevb.net/wp/2010/lego-space/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 18:49:57 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Personal & Interests]]></category>
		<category><![CDATA[Lego]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=742</guid>
		<description><![CDATA[I was a big fan of early 90s Lego Space sets when I was a boy. It was a time of M-Trons, Blacktrons, Space Police, Ice Planet, and others. Unfortunately, Lego was very expensive compared to local wages back then &#8230; <a href="http://galfar.vevb.net/wp/2010/lego-space/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was a big fan of early 90s Lego Space sets when I was a boy. It was a time of M-Trons, Blacktrons, Space Police, Ice Planet, and others. Unfortunately, Lego was very expensive compared to local wages back then so I didn&#8217;t get many of them, let alone some big ones.</p>
<p>Much later, in 2008, I stumbled upon small Lego exhibition made by some local fans. There was a really huge M-Tron base and it got me thinking about buying few of those larger Space sets I wanted years ago. Well, after about two-month eBay shopping spree I had all M-Tron sets &#8211; together with about 60 others (and some individual parts orders from Bricklink). I became a nightmare for local post women with all these international packages coming nearly every other day. My best buy was probably <a href="http://www.brickset.com/detail/?Set=6987-1" target="_blank">Blacktron Message Intercept Base</a> with original box for less than £20 from eBay UK.</p>
<p>These days I don&#8217;t have time for Lego anymore, but hopefully this will change some day. And some larger building space would be nice too!</p>
<p style="text-align: center;"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2010/05/002.jpg"><img class="size-medium wp-image-743" title="M-Tron vs Spyrius" src="http://galfar.vevb.net/wp/wp-content/uploads/2010/05/002-400x300.jpg" alt="" width="400" height="300" /></a></p>
<p style="text-align: center;"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2010/05/01.jpg"><img class="size-medium wp-image-744" title="Light Fighter - Puma" src="http://galfar.vevb.net/wp/wp-content/uploads/2010/05/01-400x300.jpg" alt="" width="400" height="300" /></a></p>
<p>My latest creation is Ice Planet&#8217;s <a href="http://www.brickset.com/detail/?Set=6973-1" target="_blank">Deep Freeze Defender</a> rebuilt as a M-Tron ship. Unfortunately, it was quite damaged during moving to a different house so I&#8217;ll have to do some repairs.</p>
<p>Check out <a href="http://www.brickshelf.com/cgi-bin/gallery.cgi?m=Galfar" target="_blank">my Brickshelf gallery</a> and <a href="http://www.brickset.com/search/?OwnedBy=Galfar" target="_blank">current set collection</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2010/lego-space/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PasJpeg2000 Update in Progress</title>
		<link>http://galfar.vevb.net/wp/2010/pasjpeg2000-update-in-progress/</link>
		<comments>http://galfar.vevb.net/wp/2010/pasjpeg2000-update-in-progress/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 09:56:23 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[JPEG 2000 for Pascal]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=756</guid>
		<description><![CDATA[I&#8217;m currently rewriting much of a Jpeg 2000 for Pascal library. There is a new IO class responsible for decoding and encoding of Jpeg 2000 files instead of only VCL TBitmap descendant. It&#8217;s cross platform and with only Delphi/FPC RTL &#8230; <a href="http://galfar.vevb.net/wp/2010/pasjpeg2000-update-in-progress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently rewriting much of a Jpeg 2000 for Pascal library. There is a new IO class responsible for decoding and encoding of Jpeg 2000 files instead of only VCL TBitmap descendant. It&#8217;s cross platform and with only Delphi/FPC RTL dependencies. VCL and LCL TGraphic classes will be built using this IO class but it can be used independently as well (Imaging library will use it too). </p>
<p>New features of Jpeg 2000 for Pascal will be CMYK colorspace support and also indexed/palettized images support (yes, it&#8217;s possible to have image using palette in Jpeg 2000). These features as well as proper alpha channel definitions are patched into OpenJpeg library. Its team is not very active in incorporating larger patches into their code, so patches will probably always be additional step for people who want to recompile OpenJpeg themselves for use with PasJpeg2000.</p>
<p>You can follow the progress of the new version in SVN repository here: <a href="http://code.google.com/p/pasjpeg2000/source/browse/#svn/branches/v120" target="_blank">branch v120</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2010/pasjpeg2000-update-in-progress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ugly Images of Disabled Menu Items in Delphi</title>
		<link>http://galfar.vevb.net/wp/2010/ugly-images-of-disabled-items-in-delphi/</link>
		<comments>http://galfar.vevb.net/wp/2010/ugly-images-of-disabled-items-in-delphi/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 15:44:14 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Pascal & Delphi]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=726</guid>
		<description><![CDATA[Ever used 32bit images stored in TImageList in your Delphi application? Toolbars and some other VCL controls have DisabledImages property which is automatically used to get images for disabled toolbar buttons. But what about menu components? They don&#8217;t have this &#8230; <a href="http://galfar.vevb.net/wp/2010/ugly-images-of-disabled-items-in-delphi/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ever used 32bit images stored in TImageList in your Delphi application? Toolbars and some other VCL controls have DisabledImages property which is automatically used to get images for disabled toolbar buttons. But what about menu components? They don&#8217;t have this property and drawing of disabled images is handled by TImageList with original enabled images (TMainMenu.Images property).  And the results are really abysmal. How can this be fixed?</p>
<p><a href="http://galfar.vevb.net/wp/wp-content/uploads/2010/04/disabled-items-delphi.png"><img class="aligncenter size-full wp-image-731" title="Disabled menu items" src="http://galfar.vevb.net/wp/wp-content/uploads/2010/04/disabled-items-delphi.png" alt="" width="153" height="190" /></a>One way is to override DoDraw method of TImageList and change the code that draws disabled images. You can do regular RGB to grayscale conversion here or let  Windows draw it for you in grayscale with nearly no work on your part. You can do this by using <a href="http://msdn.microsoft.com/en-us/library/bb761537(VS.85).aspx" target="_blank">ImageList_DrawIndirect</a> with ILS_SATURATE parameter. Note that this works only on Windows XP and newer and for 32bit images only. For older targets or color depths doing your own RGB-&gt;grayscale conversion is an option (good idea would probably be to cache converted grayscale images somewhere so they won&#8217;t need to be converted on every draw call).</p>
<p>Here&#8217;s the code of DoDraw method using  ILS_SATURATE:</p>
<pre class="brush: delphi; title: ; notranslate">
type
// Descendant of regular TImageList
TSIImageList = class(TImageList)
protected
  procedure DoDraw(Index: Integer; Canvas: TCanvas; X, Y: Integer;
    Style: Cardinal; Enabled: Boolean = True); override;
end;

procedure TSIImageList.DoDraw(Index: Integer; Canvas: TCanvas; X, Y: Integer;
  Style: Cardinal; Enabled: Boolean);
var
  Options: TImageListDrawParams;

  function GetRGBColor(Value: TColor): Cardinal;
  begin
    Result := ColorToRGB(Value);
    case Result of
      clNone: Result := CLR_NONE;
      clDefault: Result := CLR_DEFAULT;
    end;
  end;

begin
  if Enabled or (ColorDepth &lt;&gt; cd32Bit) then
    inherited
  else if HandleAllocated then
  begin
    FillChar(Options, SizeOf(Options), 0);
    Options.cbSize := SizeOf(Options);
    Options.himl := Self.Handle;
    Options.i := Index;
    Options.hdcDst := Canvas.Handle;
    Options.x := X;
    Options.y := Y;
    Options.cx := 0;
    Options.cy := 0;
    Options.xBitmap := 0;
    Options.yBitmap := 0;
    Options.rgbBk := GetRGBColor(BkColor);
    Options.rgbFg := GetRGBColor(BlendColor);
    Options.fStyle := Style;
    Options.fState := ILS_SATURATE; // Grayscale for 32bit images

    ImageList_DrawIndirect(@Options);
  end;
end;
</pre>
<p><strong>Important note: </strong>For ILS_SATURATE to work correctly source image files must be 32bit with proper alpha channel data, setting color depth of TImageList to 32bit is not enough! If you don&#8217;t see any images drawn this is probably the cause: 8/24bit image is loaded from file and then inserted into 32bit TImageList. As there is no alpha channel data in source image it is drawn as fully transparent so you don&#8217;t see anything.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">http://msdn.microsoft.com/en-us/library/bb761537(VS.85).aspx</div>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2010/ugly-images-of-disabled-items-in-delphi/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>HoMaM 2 and Arena remakes</title>
		<link>http://galfar.vevb.net/wp/2010/homam-2-and-arena-remakes/</link>
		<comments>http://galfar.vevb.net/wp/2010/homam-2-and-arena-remakes/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 14:35:50 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[TES]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=714</guid>
		<description><![CDATA[My favorite game from Heroes of Might and Magic series is the second one. I guess it&#8217;s mainly because of its graphics. I like these nicely done 2D sprites much more than renders of 3D models from HoMaM 3. Today &#8230; <a href="http://galfar.vevb.net/wp/2010/homam-2-and-arena-remakes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My favorite game from Heroes of Might and Magic series is the second one. I guess it&#8217;s mainly because of its graphics. I like these nicely done 2D sprites much more than renders of 3D models from HoMaM 3.</p>
<p>Today you can play original DOS version of  HoMaM 2 in DosBox. It wasn&#8217;t the case few years ago when DosBox wasn&#8217;t able to run SVGA games. There&#8217;s also Windows version of HoMaM 2 executables in Heroes Of Might And Magic 2 Gold (expansion disk included). However, neither of these two options take advantage of today&#8217;s high resolution monitors. Map view will always be stretched from it&#8217;s original 640&#215;480 resolution.</p>
<p>Several years ago, I stumbled upon <a href="http://sourceforge.net/projects/fheroes2/" target="_blank">Free Heroes II</a> project. It&#8217;s a GPL cross-platform (SDL based) implementation of Heroes of the Might and Magic II engine. It&#8217;s been steadily progressing over the years and fortunately hasn&#8217;t died like many other remakes of older games. Today, &#8220;standard game&#8221; mode is playable as well as hot seat multiplayer. Very nice feature of Free Heroes II is that map view is not stretched to higher resolutions. Instead, you can see larger portion of a map without the need for a lot of scrolling around. Let&#8217;s hope we&#8217;ll see version 1.0 in near future.</p>
<p style="text-align: center;"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2010/04/fheroes.png"><img class="size-medium wp-image-713 aligncenter" title="Free Heroes 2" src="http://galfar.vevb.net/wp/wp-content/uploads/2010/04/fheroes-400x310.png" alt="Free Heroes 2" width="400" height="310" /></a></p>
<p>Another game I&#8217;d like to see remade is the first The Elder Scrolls game Arena. There hasn&#8217;t been any known attempt at remake Arena &#8211; unlike its sequel Daggerfall (though all past remakes failed the latest one, <a href="http://daggerxl.wordpress.com/" target="_blank">DaggerXL</a>, remains very promising). No description of Arena file formats is available on the Internet either (with few exceptions of raw images or formats shared by more Bethesda games) &#8211; again unlike Daggerfall where almost everything is described in detail.</p>
<p>I was pleasantly surprised few months ago when I found out about WinArena. It was originally Arena resource extractor and converter (textures, maps, sounds, sprites, &#8230;) with 3D engine capable of  displaying Arena maps added later. Unfortunately there are only two versions you can find on the net and the latest is dated December 2005 &#8211; so it&#8217;s long since dead.</p>
<p>3D engine uses software rendering in 256 color mode like original Arena (it supports higher resolutions though). According to the author, many of the effects in the game are based on palette manipulation tricks so it wouldn&#8217;t be possible to get the exact Arena look using standard hardware accelerated 3D API like Direct3D or OpenGL.</p>
<p>What&#8217;s best on WinArena is that full source code is provided. And since it handles most if not all Arena file formats, getting their description is just a matter of going through the code. I&#8217;d also love the possibility to revisit all the main maps in the game so maybe I&#8217;ll modify it a little bit (WinArena currently starts at the beginning of actual Arena gameplay &#8211; in the prison like most TES games do).</p>
<p>You can get latest version of WinArena at <a href="http://www.tesnexus.com/downloads/file.php?id=8516" target="_blank">TESNexus</a>.</p>
<p style="text-align: center;"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2010/04/winarena.png"><img class="aligncenter size-medium wp-image-720" title="WinArena" src="http://galfar.vevb.net/wp/wp-content/uploads/2010/04/winarena-400x270.png" alt="WinArena" width="400" height="270" /></a></p>
<p>Just before publishing this post I also found <a href="http://code.google.com/p/pyarenalinux/" target="_blank">Python port of Elder Scrolls: Arena</a> which also seems inactive at the moment (there&#8217;s some resource extraction Python code in the project&#8217;s repository).</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2010/homam-2-and-arena-remakes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stats for 2009</title>
		<link>http://galfar.vevb.net/wp/2010/stats-for-2009/</link>
		<comments>http://galfar.vevb.net/wp/2010/stats-for-2009/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 20:25:00 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=693</guid>
		<description><![CDATA[I quite like looking at various stats and sometimes even big tables with a lots of numbers. Since I don&#8217;t have anything in particular to write about now, I&#8217;ll share some of the site stats for 2009. Downloads Top download &#8230; <a href="http://galfar.vevb.net/wp/2010/stats-for-2009/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I quite like looking at various stats and sometimes even big tables with a lots of numbers. Since I don&#8217;t have anything in particular to write about now, I&#8217;ll share some of the site stats for 2009.</p>
<h4>Downloads</h4>
<p>Top download is <a href="http://galfar.vevb.net/wp/projects/jpeg2000-for-pascal/" title="JPEG 2000 for Pascal">JPEG 2000 for Pascal</a> package with about 700 downloads. Second place goes to <a href="terrain#soar">glSOAR</a> terrain renderer with about 200 downloads. Third place is shared between <a href="earth-under-fire">Earth Under Fire</a> shooter and venerable <a href="oldprojects#ripper">JPEG Ripper</a> tool, both with meager 60 downloads.</p>
<h3>Visitors</h3>
<p>There have been around 4000 visitors since last March. 42% of them got here from referring sites,  35% used search engine, and 23% is direct traffic.</p>
<h3>Referring Pages</h3>
<p>Basically all of them are connected to Imaging Library or JPEG 2000 for Pascal (torry.net, delphiplus.org, imaginglib.sf.net, cc.embarcadero.com, etc.). For some reason there&#8217;s really a lot of referrals from images.google[.ru|.de|.fr|.com] pointing mostly to screenshots from Ufo: Extraterrestrials and <a href="terrain">Terrain Rendering</a> stuff. Few links to Earth Under Fire from pascalgamedevelopment.com are in the stats too.</p>
<h3>Browsers and OS</h3>
<p>Firefox is in the lead with 40% share, IE is second with 25%, third is Opera with 22%, Chrome and Safari have 7% and 2% respectively. Windows is major OS here with 91%, Linux and Mac OS X have about 4% each. There&#8217;s also one visit from Wii and one from PS3.</p>
<h3>Search Engine Keywords</h3>
<p>Most common keywords refer to these topics: Terrain rendering, JPEG 2000 for Delphi and Pascal, Ufo: Extraterrestrials, DirectX 11 for Delphi, and Daggerfall. You can find more or less information about these topics at this site.</p>
<p>Some keywords were very common too even though I wouldn&#8217;t think they&#8217;d be so popular:</p>
<ul>
<li>APNG  (mostly coupled with Delphi) &#8211; As far as I know my Imaging is only library for Pascal and Delphi that can read and write APNG animated images. That&#8217;s probably why Google search for &#8220;apng delphi&#8221; puts this site at top.</li>
<li>Delphi shr operator &#8211; Looks like there&#8217;s more people surprised that it treats negative values differently than shift right operator in C and some other languages. More on this in this post <a href="http://galfar.vevb.net/wp/2009/shift-right-delphi-vs-c/" title="Shift Right: Delphi vs C">Shift Right: Delphi vs C</a>.</li>
<li>Daggerfall music (&#8220;daggerfall gstory music&#8221;, &#8220;eric heberling&#8221; daggerfall&#8221;, &#8220;robert hood daggerfall&#8221;) &#8211; Great music indeed, much better than what&#8217;s in Morrowind and Oblivion.</li>
<li>SOAR terain rendering &#8211; here&#8217;s my Pascal implementation <a href="terrain#soar">glSOAR</a>.</li>
<li>Modula-2 related (&#8220;modula-2 vs c++, vs pascal, vs freepascal, on mac ox, for 8051, &#8230;&#8221; )</li>
</ul>
<p>And here are some uniques searches:</p>
<ul>
<li>&#8220;ancientlich&#8221; &#8211; My favorite monster in Daggerfall as well, checkout bestiary at <a href="http://www.uesp.net/wiki/Daggerfall:Bestiary" target="_blank">UESP</a> (top of the Undead section!).</li>
<li>&#8220;UFO old programming language&#8221; &#8211; that must be COBOL!</li>
<li>&#8220;ufo enemy ripped png picture&#8221; &#8211; anyone has these?</li>
<li>&#8220;directx 11 radeon x1950&#8243; &#8211; sadly no, otherwise I&#8217;d put it back in my PC right away.</li>
<li>&#8220;mng vs apng&#8221; &#8211; basically MNG is much more capable but harder to implement, more VS info <a href="http://mozilla.wikia.com/wiki/APNG_vs_MNG" target="_blank">here</a>.</li>
<li>&#8220;john the ripper directx 11&#8243; &#8211; is this some of kind of a game or what?</li>
<li>&#8220;mac os 7.5 emulator&#8221; &#8211; check out <a href="http://basilisk.cebix.net/" target="_blank">Basilisk </a>.</li>
<li>&#8220;midi format daggerfall&#8221; &#8211; It&#8217;s HMI (Human machine interfaces MIDI music file), WinAmp can play and convert that (and other old game MIDI formats as well).</li>
<li>&#8220;a price drop for gpu in 2010&#8243; &#8211; there better be one.</li>
<li>&#8220;earth on fire from space&#8221; &#8211; let&#8217;s hope not anytime soon.</li>
<li>&#8220;gulfar vivek&#8221;, &#8220;how is galfar doing?&#8221;, &#8220;large galfar image&#8221; &#8211; ???</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2010/stats-for-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Imaging in C++ Builder</title>
		<link>http://galfar.vevb.net/wp/2009/imaging-in-c-builder/</link>
		<comments>http://galfar.vevb.net/wp/2009/imaging-in-c-builder/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 19:42:41 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Vampyre Imaging Library]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=675</guid>
		<description><![CDATA[I tried compiling Imaging in C++ Builder (it uses Delphi compiler to generate .obj file which C++ linker can link and also generates C++ header for Pascal unit) few years ago. It didn&#8217;t work &#8211; there was internal compiler error, &#8230; <a href="http://galfar.vevb.net/wp/2009/imaging-in-c-builder/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I tried compiling Imaging in C++ Builder (it uses Delphi compiler to generate .obj file which C++ linker can link and also generates C++ header for Pascal unit) few years ago. It didn&#8217;t work &#8211; there was internal compiler error, I think right in ImagingTypes unit. </p>
<p>Few days ago I tried C++ Builder 2010 and was pleasantly surprised. It worked! I tried just the library core for now (ImagingTypes, Imaging, ImagingFormats, Pascal only file handlers, etc.) and it works without problems. I&#8217;m not sure which C++ Builder version is required for successful compile though. Versions 6 and 2006 stopped with internal error, 2010 worked, and there are 2 other versions between.</p>
<p>Anyway, I&#8217;ll try to check out most of the library until the 2010 trial expires for me. Hmm, I&#8217;m wondering how many people use C++ Builder for C++ development &#8211; I&#8217;ve never did something serious in it, basically just to get object files usable by Delphi &#8211; so I have no idea if it&#8217;s ok. </p>
<p>PS: Another C++ Builder related news &#8211; patch for OpenJpeg library to get it compiling in BCB is <a href="http://groups.google.com/group/openjpeg/browse_thread/thread/5a34751c74e290d5" target="_blank">posted here</a>.  </p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/imaging-in-c-builder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PasJpeg2000 News</title>
		<link>http://galfar.vevb.net/wp/2009/pasjpeg2000-news/</link>
		<comments>http://galfar.vevb.net/wp/2009/pasjpeg2000-news/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 19:37:55 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[JPEG 2000 for Pascal]]></category>
		<category><![CDATA[Vampyre Imaging Library]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=657</guid>
		<description><![CDATA[JPEG 2000 for Pascal project is based on OpenJpeg library. For a very long time there was a bug that caused alpha (fourth and subsequent image channels) channel to be saved with all the samples having the value of 0.5 &#8230; <a href="http://galfar.vevb.net/wp/2009/pasjpeg2000-news/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://galfar.vevb.net/wp/projects/jpeg2000-for-pascal/" title="JPEG 2000 for Pascal">JPEG 2000 for Pascal</a> project is based on <a href="http://www.openjpeg.org" target="_blank">OpenJpeg</a> library. For a very long time there was a bug that caused alpha (fourth and subsequent image channels) channel to be saved with all the samples having the value of 0.5 (128 for 8bit channels). This buggy behavior also depended on compiler settings &#8211; optimization level in case of GCC. You could use at most O1 in Windows and Linux, and only O0 in Mac OS X. Bug was also present when compiling with C++ Builder (to get object files usable in Delphi) but only when irreversible DWT transformation was enabled in OpenJpeg during encoding (it wasn&#8217;t before, but working versions of both PasJpeg2000 and Imaging use it now when lossy compression is selected by user to get smaller files).<br />
You can read more about it in <a href="http://groups.google.com/group/openjpeg/browse_thread/thread/d9d96dd4ec3e7443" target="_blank">this news group post</a>. Basically it was all fixed by changing a condition in one <strong>if</strong> statement to prevent accessing the fourth element of a three element array.</p>
<p>So what can you expect in the next version of PasJpeg2000 library?<br />
Higher GCC optimization levels should make it a lot faster when using Free Pascal (particularly in Mac OS X where O0 was used). Irreversible DWT transformation produces smaller lossy files than current PasJpeg2000 version and with optional MCT (multicomponent transform &#8211; basically RGB&gt;YCbCr) you get even smaller ones. There&#8217;s now also a patch that enables OpenJpeg to get palettes from JP2 files so indexed JPEG 2000 images could be supported too. And finally, there are some bug fixes (wrong reconstruction of subsampled files, &#8230;).</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/pasjpeg2000-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shift Right: Delphi vs C</title>
		<link>http://galfar.vevb.net/wp/2009/shift-right-delphi-vs-c/</link>
		<comments>http://galfar.vevb.net/wp/2009/shift-right-delphi-vs-c/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 14:33:59 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Pascal & Delphi]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=605</guid>
		<description><![CDATA[Few weeks ago I converted a little function from C language to Delphi. I kept getting completely wrong results all the time even though I was sure the C to Pascal conversion was right (it was really just few lines). &#8230; <a href="http://galfar.vevb.net/wp/2009/shift-right-delphi-vs-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Few weeks ago I converted a little function from C language to Delphi. I kept getting completely wrong results all the time even though I was sure the C to Pascal conversion was right (it was really just few lines). After some desperate time, I just tried replacing <strong>SHR</strong> operator by normal <strong>DIV</strong> (as A SHR 1 = A DIV 2 and so on). To my surprise, I immediately got the right results. Can Delphi&#8217;s (I didn&#8217;t test it in Free Pascal) <strong>SHR</strong> operator behave differently than C&#8217;s <strong>&gt;&gt;</strong> operator?</p>
<p>It does in fact. SHR treats its first operand as unsigned value even though it is a variable of signed type whereas &gt;&gt; takes the sign bit into account. In the function I converted the operand for right shift was often negative and Delphi&#8217;s SHR just ignored the value of the sign bit.</p>
<h3>A Bit of Code</h3>
<pre class="brush: cpp; title: ; notranslate">
int a, b1, b2;
a = -512;
b1 = a &gt;&gt; 1;
b2 = a / 2;
</pre>
<p>After running this C code both <strong>b1</strong> and <strong>b2</strong> have a value of -256.</p>
<pre class="brush: delphi; title: ; notranslate">
var A, B1, B2: Integer;
A := -512;
B1 := A shr 1;
B2 := A div 2;
</pre>
<p>This Delphi code however yields different result: <strong>B2</strong> is -256 as expected but <strong>B1</strong> has a value of 2147483392.</p>
<h3>A Bit of Assembler</h3>
<p>Assembler output of C code:</p>
<pre class="brush: plain; title: ; notranslate">
Unit1.cpp.22: b1 = a &gt;&gt; 1;
mov eax,[ebp-$0c]
sar eax,1
mov [ebp-$10],eax
Unit1.cpp.23: b2 = a / 2;
mov edx,[ebp-$0c]
sar edx,1
jns $00401bb9
adc edx,$00
mov [ebp-$14],edx
</pre>
<p>Assembler output of Delphi code:</p>
<pre class="brush: plain; title: ; notranslate">
Unit1.pas.371: B1 := A shr 1;
mov eax,[ebp-$0c]
shr eax,1
mov [ebp-$1c],eax
Unit1.pas.373: B2 := A div 2;
mov eax,[ebp-$0c]
sar eax,1
jns $00565315
adc eax,$00
mov [ebp-$20],eax
</pre>
<p>As you can see, asm output of C and Delphi divisions is identical. What differs is asm for shift right operator. Delphi uses <strong>shr</strong> instruction whereas C uses <strong>sar</strong> instruction. The difference: shr does logical shift and sar does arithmetic one.</p>
<blockquote><p>The SHR instruction clears the most significant bit (see Figure 6-7 in the Intel Architecture Software Developer&#8217;s Manual, Volume 1); the SAR instruction sets or clears the most significant bit to correspond to the sign (most significant bit) of the original value in the destination operand.</p></blockquote>
<p>Quoted from: <a href="http://faydoc.tripod.com/cpu/shr.htm">http://faydoc.tripod.com/cpu/shr.htm</a></p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/shift-right-delphi-vs-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Imaging 0.26.4 Released</title>
		<link>http://galfar.vevb.net/wp/2009/imaging-0-26-4-released/</link>
		<comments>http://galfar.vevb.net/wp/2009/imaging-0-26-4-released/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 12:28:32 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Vampyre Imaging Library]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=598</guid>
		<description><![CDATA[Vampyre Imaging Library project was updated to version 0.26.4 few hours ago. This was supposed to be fix/patch/update release only but new features got in nevertheless (most notably APNG support I wrote about earlier and arbitrary angle image rotations). More &#8230; <a href="http://galfar.vevb.net/wp/2009/imaging-0-26-4-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Vampyre Imaging Library</strong> project was updated to version 0.26.4 few hours ago. This was supposed to be fix/patch/update release only but new features got in nevertheless (most notably APNG support I wrote about earlier and arbitrary angle image rotations).</p>
<p>More info and downloads at <a href="http://imaginglib.sourceforge.net">Imaging&#8217;s homepage</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/imaging-0-26-4-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DirectX 11: GPUs and headers</title>
		<link>http://galfar.vevb.net/wp/2009/directx-11/</link>
		<comments>http://galfar.vevb.net/wp/2009/directx-11/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 22:10:32 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[General News]]></category>
		<category><![CDATA[Pascal & Delphi]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=592</guid>
		<description><![CDATA[Few days ago I was wondering how long it will take to see DirectX 11 headers translated to Delphi/Pascal. I knew that translations of new DX components Direct2D and DirectWrite are part of Delphi 2010, but what about Direct3D and &#8230; <a href="http://galfar.vevb.net/wp/2009/directx-11/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Few days ago I was wondering how long it will take to see DirectX 11 headers translated to Delphi/Pascal. I knew that translations of new DX components Direct2D and DirectWrite are part of Delphi 2010, but what about Direct3D and DirectCompute?</p>
<p>I checked out <a title="Clootie graphics pages" href="http://clootie.ru" target="_blank">Clootie graphics pages</a> but no luck there. Unfortunately, it&#8217;s not so active anymore. After that I thought DX11 for Pascal wouldn&#8217;t appear in like several months at least. Surprise, I found it about 5 minutes later. John Bladen published his DX11 translation on <a href="http://directxfordelphi.blogspot.com/" target="_blank">DirectX for Delphi</a> blog. Thanks John!</p>
<p>Now all that remains is buying a DX11 GPU. New Radeons should be released sometime during this week and I&#8217;m thinking of getting 5850 model in a few months. Rumours are that NVidia&#8217;s DX11 cards won&#8217;t be out before 2010, so probably no big price drops for 5800 Radeons are to be expected until then.</p>
<p>My pile of old graphic cards will get bigger once again. I don&#8217;t buy new CPU/motherboard/RAM too often (now it&#8217;s Core2 from 2007 and before that AthlonXP in 2002) and I usually manage to sell the old ones or put them on server duty somewhere. However, since GPU performance as well as requirements on it rise much more faster than that of CPU, I ended up with like 5 cards in last 8 years. I managed to sell Radeon 9000 and GeForce 6600 but I still have Riva TNT2 and Radeon X1950 in my closet somewhere (and S3 Trio!). Hopefully, I&#8217;ll find a buyer for my 1GB 4850 soon.</p>
<p>Lately, I&#8217;ve had bad luck buying some new stuff just before major price drop. Hopefully, this won&#8217;t happen with 5850. Not that I want it to remain expensive &#8211; just want to buy it after the drop, not  a little while before it.</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/directx-11/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Block Compression, DXTC, And Imaging</title>
		<link>http://galfar.vevb.net/wp/2009/block-compression-dxtc-and-imaging/</link>
		<comments>http://galfar.vevb.net/wp/2009/block-compression-dxtc-and-imaging/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 01:12:55 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Image Formats]]></category>
		<category><![CDATA[Vampyre Imaging Library]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=564</guid>
		<description><![CDATA[Imaging supported DXT image/texture compression since one of the earliest releases. Quality of compressed images isn&#8217;t very high though (at least the compression isn&#8217;t too slow). For future Imaging versions I plan to ditch the current compression code and add &#8230; <a href="http://galfar.vevb.net/wp/2009/block-compression-dxtc-and-imaging/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Imaging supported DXT image/texture compression since one of the earliest releases. Quality of compressed images isn&#8217;t very high though (at least the compression isn&#8217;t too slow). For future Imaging versions I plan to ditch the current compression code and add a new one. To be precise, two new ones &#8211; fast and lower quality (still probably better than current Imaging&#8217;s compression), and slow and higher quality mode. Fast one will be based on <a href="http://cache-www.intel.com/cd/00/00/32/43/324337_324337.pdf" target="_blank">Real-Time DXT Compression</a> by Id Soft. I&#8217;m not decided on high quality one yet, but probably something like cluster fit algorithm from <a href="http://code.google.com/p/libsquish/" target="_blank">Squish library</a>.</p>
<p>Mainly for testing purposes during implementation of these new methods, I want to create extension for Imaging that compares two images (original and one reconstructed from compressed original) and measures PSNR and some other quality metrics.</p>
<p>I&#8217;m also thinking of implementing DXT5 based format using YCoCg colorspace and PVRTC (texture compression currently used in iPhone).</p>
<p>Few links if you&#8217;re interested:</p>
<ul>
<li>Brief DXTC overview: <a href="http://en.wikipedia.org/wiki/S3_Texture_Compression" target="_blank">http://en.wikipedia.org/wiki/S3_Texture_Compression</a></li>
<li>More technical details: <a href="http://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt" target="_blank">http://www.opengl.org/registry/specs/EXT/texture_compression_s3tc.txt</a></li>
<li>YCoCg-DXT related: <a href="http://developer.nvidia.com/object/real-time-ycocg-dxt-compression.html" target="_blank">http://developer.nvidia.com/object/real-time-ycocg-dxt-compression.html</a></li>
</ul>
<p>Here&#8217;s some quick comparison of DXT compressors (click the image to see full size). Value in brackets is MSE (mean square error) &#8211; lesser number means compressed image is more similar to original.</p>
<p style="text-align: center;"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2009/08/dxtcompare.png"><img class="size-medium wp-image-567 aligncenter" title="DXT compressors comparison" src="http://galfar.vevb.net/wp/wp-content/uploads/2009/08/dxtcompare-266x400.png" alt="DXT compressors comparison" width="266" height="400" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/block-compression-dxtc-and-imaging/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Daggerfall for Free!</title>
		<link>http://galfar.vevb.net/wp/2009/daggerfall-for-free/</link>
		<comments>http://galfar.vevb.net/wp/2009/daggerfall-for-free/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 13:27:14 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[TES]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=554</guid>
		<description><![CDATA[One of my all time favorite games was released as free download few weeks ago as a celebration of 15th anniversary of Elder Scrolls series. It’s 1996 title The Elder Scrolls: Daggerfall by Bethesda. You can get 150MiB zip archive &#8230; <a href="http://galfar.vevb.net/wp/2009/daggerfall-for-free/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of my all time favorite games was released as free download few weeks ago as a celebration of 15th anniversary of Elder Scrolls series. It’s 1996 title <a title="Elder Scrolls: Daggerfall" href="http://en.wikipedia.org/wiki/Daggerfall" target="_blank">The Elder Scrolls: Daggerfall</a> by Bethesda. You can get 150MiB zip archive with install at <a href="http://bethblog.com/index.php/2009/07/09/daggerfall-now-available-for-free/" target="_blank">BethSoft&#8217;s site</a>. Getting it working on modern OS is not easy but DosBox should help here.</p>
<p>There were a lot of attempts at remakes of Daggerfall but all failed so far. However, a new promising one appeared recently and it’s progressing at warp speed since then (one month from wrongly textured entrance of Privateer’s Hold dungeon to rendering city blocks). Check out development blog and downloads at the homepage of <a href="http://daggerxl.wordpress.com/" target="_blank">DaggerXL</a>. You need original Daggerfall data files to run the demo – no problem now when you can get it free.</p>
<p><a href="http://www.dfworkshop.net/" target="_blank">Daggerfall Workshop</a> was recently reopened as well. It’s a home of tools that let you explore Daggerfall’s game assets (textures, models, maps, music, etc.). There’s also a new exploring tool in development that looks really good, with very interesting blog posts about various Dagger’s file formats, rendering techniques, and so on.</p>
<p>I did my small share of dabbling in Daggerfall’s file formats too. Image and texture loaders in Object Pascal are part of ElderImagery extension of Imaging library and I’ve got BSA archive handler somewhere too. I’m now thinking of adding SKY format (backdrop images used in game for skies and far away mountains) loader, just for fun I guess.</p>
<p>When writing about Daggerfall, one cannot forget mentioning its music which was really excellent. Much more atmospheric and fitting than the music in recent Elder Scrolls games (there was also a lot more tracks). Check out <a href="http://www.rhmusic.net/dfmusicproject/music.html" target="_blank">Robert Hood’s arrangements</a> of Eric Heberling&#8217;s original music tracks.</p>
<p style="text-align: center;"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2009/07/dag01.png"><img class="alignnone size-thumbnail wp-image-555" title="Castle Wayrest" src="http://galfar.vevb.net/wp/wp-content/uploads/2009/07/dag01-192x128.png" alt="Castle Wayrest" width="192" height="128" /></a><a href="http://galfar.vevb.net/wp/wp-content/uploads/2009/07/dag02.png"><img class="alignnone size-thumbnail wp-image-556" title="Wildreness at night" src="http://galfar.vevb.net/wp/wp-content/uploads/2009/07/dag02-192x128.png" alt="Wildreness at night" width="192" height="128" /></a></p>
<p style="text-align: center;"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2009/07/dag03.png"><img class="alignnone size-thumbnail wp-image-557" title="Wilderness" src="http://galfar.vevb.net/wp/wp-content/uploads/2009/07/dag03-192x128.png" alt="Wilderness" width="192" height="128" /></a><a href="http://galfar.vevb.net/wp/wp-content/uploads/2009/07/dag04.png"><img class="alignnone size-thumbnail wp-image-558" title="My character" src="http://galfar.vevb.net/wp/wp-content/uploads/2009/07/dag04-192x128.png" alt="My character" width="192" height="128" /></a></p>
<p style="text-align: center;"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2009/07/dag05.png"><img class="size-thumbnail wp-image-559 aligncenter" title="My other character" src="http://galfar.vevb.net/wp/wp-content/uploads/2009/07/dag05-192x128.png" alt="My other character" width="192" height="128" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/daggerfall-for-free/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>First JPEG 2000 for Pascal Release</title>
		<link>http://galfar.vevb.net/wp/2009/first-jpeg-2000-for-pascal-release/</link>
		<comments>http://galfar.vevb.net/wp/2009/first-jpeg-2000-for-pascal-release/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 13:18:39 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Image Formats]]></category>
		<category><![CDATA[JPEG 2000 for Pascal]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/2009/07/first-jpeg-2000-for-pascal-release/</guid>
		<description><![CDATA[I finally released first version of JPEG 2000 for Pascal library. It’s based on translated header and precompiled OpenJpeg library that was part of Imaging for a long time – now released separately. There’s header translation working with both Delphi &#8230; <a href="http://galfar.vevb.net/wp/2009/first-jpeg-2000-for-pascal-release/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I finally released first version of JPEG 2000 for Pascal library. It’s based on translated header and precompiled <a href="http://www.openjpeg.org" target="_blank">OpenJpeg</a> library that was part of Imaging for a long time – now released separately.</p>
<p>There’s header translation working with both Delphi and FPC and original C library precompiled to object files (Delphi) and static libraries (FPC for Win32, Linux x86/x64, and Mac OS X).</p>
<p>I’ve written simple TBitmap descendant that loads and saves JPEG 2000 images. It’s only for Delphi now – can’t do LCL version with just few IFDEFS, there are lot more changes between VCL and LCL TBitmaps. I plan to write separate LCL version for one of upcoming releases (using TFPCustomImageWriter and TFPCustomImageReader classes).</p>
<p>You can get JPEG 2000 for Pascal library at it’s <a href="http://galfar.vevb.net/pasjpeg2000">project page</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/first-jpeg-2000-for-pascal-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APNG Update</title>
		<link>http://galfar.vevb.net/wp/2009/apng-update/</link>
		<comments>http://galfar.vevb.net/wp/2009/apng-update/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 02:45:17 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Image Formats]]></category>
		<category><![CDATA[Vampyre Imaging Library]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/2009/06/apng-update/</guid>
		<description><![CDATA[APNG loading and animating implementation for Imaging wasn&#8217;t very hard work. However, there are not that many test images to be found on the Internet and most of the available ones are very simple. They&#8217;re usually not using disposal methods &#8230; <a href="http://galfar.vevb.net/wp/2009/apng-update/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>APNG loading and animating implementation for Imaging wasn&#8217;t very hard work. However, there are not that many test images to be found on the Internet and most of the available ones are very simple. They&#8217;re usually not using disposal methods and are basically just collection of independent images. Big difference compared to GIF files &#8211; some of them were quite difficult to animate right. I even got most of nontrivial APNG test files by converting some more complex animated GIF files. Tools for creating APNG images are not yet as sophisticated as some GIF animation tools &#8211; there&#8217;s <a href="http://sourceforge.net/projects/giftoapngconver" target="_blank">GIF to APNG converter</a>, <a href="http://sites.google.com/site/cphktool/apng-anime-maker" target="_blank">APNG Anime Maker</a>, and some web based tools that assemble simple APNG file from bunch of uploaded single PNG frames.</p>
<p>Now I&#8217;m gonna extend PNG saver to allow saving multi images to simple APNG files, much like MNG saving works now. There&#8217;s really not a good unified way how to pass some more information to image file savers in current library design &#8211; that&#8217;s one of TODOs for new Imaging architecture.</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/apng-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>APNG Support for Imaging</title>
		<link>http://galfar.vevb.net/wp/2009/apng-support-for-imaging/</link>
		<comments>http://galfar.vevb.net/wp/2009/apng-support-for-imaging/#comments</comments>
		<pubDate>Tue, 19 May 2009 20:32:30 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Image Formats]]></category>
		<category><![CDATA[Vampyre Imaging Library]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/2009/05/apng-support-for-imaging/</guid>
		<description><![CDATA[I started working on support for APNG format for Imaging library. APNG is unofficial extension of PNG image file format created by two guys from Mozilla Corporation. The point of APNG is to allow storing simple animations in PNG files &#8230; <a href="http://galfar.vevb.net/wp/2009/apng-support-for-imaging/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I started working on support for <strong>APNG</strong> format for Imaging library. APNG is unofficial extension of PNG image file format created by two guys from Mozilla Corporation. The point of APNG is to allow storing simple animations in PNG files (hence the &#8220;A&#8221; for &#8220;Animated&#8221;).</p>
<p>There is already PNG-like chunk based format for animations called <strong>MNG </strong>(already supported by Imaging &#8211; at least the basic features). However, MNG is quite complex format and its support among browsers and image viewers/editors is lacking. Code library supporting all MNG features is huge.</p>
<p>APNG on the other hand is just an extension of PNG and its implementation is not so complex. I&#8217;m going to load only the raw frames from files at first and see what will have to be done to support animating the frames next. Canvas class will have to be used here for alpha blending subsequent frames to previous ones. I&#8217;ll add option to turn the animating on/off just like it is available for animated GIF files.</p>
<p>More info about APNG: <a title="http://www.animatedpng.com" href="http://www.animatedpng.com">http://www.animatedpng.com</a> and <a title="https://wiki.mozilla.org/APNG_Specification" href="https://wiki.mozilla.org/APNG_Specification">https://wiki.mozilla.org/APNG_Specification</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/apng-support-for-imaging/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Homepage Ready</title>
		<link>http://galfar.vevb.net/wp/2009/new-homepage-ready/</link>
		<comments>http://galfar.vevb.net/wp/2009/new-homepage-ready/#comments</comments>
		<pubDate>Sat, 02 May 2009 11:52:03 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/2009/05/new-homepage-ready/</guid>
		<description><![CDATA[I created new web site based on WordPress at http://galfar.vevb.net/wp/ few months and I’ve been slowly transferring content there since then. It’s ready now so I’ll redirect http://galfar.vevb.net/ to the new site in a moment. Old one will still be &#8230; <a href="http://galfar.vevb.net/wp/2009/new-homepage-ready/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I created new web site based on WordPress at <a title="http://galfar.vevb.net/wp/" href="http://galfar.vevb.net/wp/">http://galfar.vevb.net/wp/</a> few months and I’ve been slowly transferring content there since then. It’s ready now so I’ll redirect <a title="http://galfar.vevb.net/wp/" href="http://galfar.vevb.net/wp/">http://galfar.vevb.net/</a> to the new site in a moment. Old one will still be available at <a title="http://galfar.vevb.net/wp/" href="http://galfar.vevb.net/cms/">http://galfar.vevb.net/cms/</a> but all the old content should be available here too.</p>
<p>Current theme is just temporary, I’ll look for something more to my liking later (going away for a week in few hours) and probably do some modifications. I’ve tried quite a few themes already but there was always some glitch (no header margins, wrong image alignment, etc.).</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/new-homepage-ready/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working in MODULA-2</title>
		<link>http://galfar.vevb.net/wp/2009/working-in-modula-2/</link>
		<comments>http://galfar.vevb.net/wp/2009/working-in-modula-2/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 10:36:37 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[General News]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/2009/04/working-in-modula-2/</guid>
		<description><![CDATA[I’ve been working in Modula-2 for last few weeks. It’s a considered a dead language now, one of Pascal’s descendants designed by Niclaus Wirth. I’ve been doing some updates to quite an old project, embedded system for military usage.&#160; I &#8230; <a href="http://galfar.vevb.net/wp/2009/working-in-modula-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I’ve been working in Modula-2 for last few weeks. It’s a considered a dead language now, one of Pascal’s descendants designed by Niclaus Wirth. I’ve been doing some updates to quite an old project, embedded system for military usage.&#160; I had to run Mac OS 7.5 emulator to get original 1989 compiler running. Modula-2 dialect understood by this compiler is quite strict – you cannot even mix cardinal and integer numbers without explicitly converting one of them. </p>
<p>First difference you may notice (compared to Pascal) is case sensitiveness of Modula-2, for instance all reserved words are upper cased. You don’t have to write so many begin-end statements though. Another C-like trait is importance of header files (definition modules) order during compiling – just change it a little bit in a large project and whole thing breaks down. </p>
<p align="left">More info about Modula-2 if you’re interested: <a href="http://www.modula2.org/">http://www.modula2.org/</a>.</p>
<p align="left"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="Modula-2" border="0" alt="Modula-2" src="http://galfar.vevb.net/wp/wp-content/uploads/2009/04/modula2.png" width="448" height="480" /></p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/working-in-modula-2/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Imaging in Mac OS X</title>
		<link>http://galfar.vevb.net/wp/2009/imaging-in-mac-os-x/</link>
		<comments>http://galfar.vevb.net/wp/2009/imaging-in-mac-os-x/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 13:11:00 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Vampyre Imaging Library]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/2009/02/imaging-in-mac-os-x/</guid>
		<description><![CDATA[I wasn’t sure if Vampyre Imaging Library works right in Mac OS X until few weeks ago. One poster in Imaging’s forum wrote a post about scrambled images produced by the library on Mac OS X. Fortunately, the problem was &#8230; <a href="http://galfar.vevb.net/wp/2009/imaging-in-mac-os-x/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I wasn’t sure if <strong>Vampyre Imaging Library</strong> works right in <strong>Mac OS X</strong> until few weeks ago. One poster in Imaging’s forum wrote a <a href="http://galfar.vevb.net/imaging/smf/index.php/topic,91.0.html">post</a> about scrambled images produced by the library on Mac OS X. Fortunately, the problem was related only to Lazarus LCL support – all other functionality worked fine.</p>
<p>After not so straightforward installation of Mac OS X in VMWare I fixed the issue just by changing number “24” to “32” in the code (TRawImage.Description.Depth field, LCL raw image to TBitmap conversion). Apparently, Carbon created bitmap with 6 bits per color channel. Now I just need to check if 24-&gt;32 change doesn’t break anything when using other LCL widget sets (I’m sure there was a reason for 24bits since I vaguely remember 32bits were there few years ago) – so maybe conditional compilation will be needed here.</p>
<p>Another issue I noticed is that <strong>LCL Imager</strong> demo couldn’t load default image (Tigers.jpg) that is displayed when it is started without parameters. Demo uses relative path to the image but (from Demos/Bin to Demos/Data directory). Mac OS X application LCLImager.app is placed in Demos/Bin directory by Lazarus but it is not a simple single file. It’s a directory itself and actual demo executable is located somewhere inside. I’ve not really decided on solution yet. Maybe embed the image in the executable as resource?</p>
<p style="text-align: center;"><a href="http://galfar.vevb.net/wp/wp-content/uploads/2009/02/tigers-1-and-tigers-2.jpg"><img class="size-medium wp-image-236 aligncenter" title="Tigers1 and Tigers2, see the difference?" src="http://galfar.vevb.net/wp/wp-content/uploads/2009/02/tigers-1-and-tigers-2-512x188.jpg" alt="See the difference?" width="512" height="188" /></a></p>
<p style="text-align: center;">See the difference?</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/imaging-in-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Imaging 0.26.2 released!</title>
		<link>http://galfar.vevb.net/wp/2009/imaging-0262-released/</link>
		<comments>http://galfar.vevb.net/wp/2009/imaging-0262-released/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 02:14:47 +0000</pubDate>
		<dc:creator>Marek Mauder</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Vampyre Imaging Library]]></category>

		<guid isPermaLink="false">http://galfar.vevb.net/wp/?p=134</guid>
		<description><![CDATA[My Vampyre Imaging Library was updated to version 0.26.2 few days ago. This was mostly fix/patch/update release with no significant new features. I decided to remove Kylix support (CLX graphic classes, project files, build scripts, core library still compiles). It&#8217;s &#8230; <a href="http://galfar.vevb.net/wp/2009/imaging-0262-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My <strong>Vampyre Imaging Library</strong> was updated to version 0.26.2 few days ago. This was mostly fix/patch/update release with no significant new features.</p>
<p>I decided to remove Kylix support (CLX graphic classes, project files, build scripts, core library still compiles). It&#8217;s not working properly on many (all?) current Linux distros (so I can&#8217;t test) and it was abandoned by Borland/Codegear quite some time ago. It was nice to have DCC compiler in Linux and it also made Borland to make Delphi RTL crossplatform. There are rumors about crosscompiling features in upcoming Delphi releases (in 2010?)&#160; so maybe we&#8217;ll see DCC in Linux again.</p>
<p>Instead of Kylix project files there are new ones for Delphi 2009. Imaging itself didn&#8217;t require many fixes to compile and work with Delphi 2009,&#160; most of them were related to text-based file format loaders (XMP, PNM) and external libraries (JpegLib, ZLib).</p>
<p>More info and downloads at <a href="http://imaginglib.sourceforge.net">Imaging&#8217;s homepage</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://galfar.vevb.net/wp/2009/imaging-0262-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
