<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>FinalFury Forum</title>
        <description></description>
        <link>http://www.finalfury.co.uk/phorum/index.php</link>
        <lastBuildDate>Thu, 09 Sep 2010 09:07:50 +0100</lastBuildDate>
        <generator>Phorum 5.2.7</generator>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,61,61#msg-61</guid>
            <title>Radeon HDTV Underscan</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,61,61#msg-61</link>
            <description><![CDATA[ I just wasted an entire day trying to get rid of the black bars (underscan) I was seeing when connecting my Radeon HD 4870 to my Samsung LE32A566P HDTV. I tired all sorts of settings in both the TV and PC until finally comming across this <a rel="nofollow"  href="http://forums.amd.com/game/messageview.cfm?catid=260&amp;threadid=119282">article</a>. Pay close attention to harthansen's posts. He mentions this..<br />
<br />
<blockquote class="bbcode">Quote:<div><strong>Harthansen</strong><br/>What should really be mentioned is that in Desktops &amp; Displays. You have to<u class="bbcode">right click on the little icon of your TV at the bottom</u> and go to configure. This is the only way to access many functions of the video card, like scaling options. It took me an hour to figure that out.<br/></div></blockquote>
<br />
Here's an image showing what he means..<br />
<br />
<center class="bbcode">[attachment 29 CCC_configure_display.jpg]</center><br />
<br />
You can then find the underscan option in the 'Scaling' tab. It looks like this..<br />
<br />
<center class="bbcode">[attachment 30 CCC_underscan.jpg]</center><br />
<br />
It turns out that for whatever retarded reason CCC (Catalyst Control Center) defaults to 5% underscan. This is what causes the black bars. All you have to do is move the underscan slider to 0% (as in the above picture) and all is fixed.<br />
<br />
Now go, have fun times with your fully utilised HDTV!]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Sun, 10 Jan 2010 12:34:21 +0000</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,60,60#msg-60</guid>
            <title>Bluetooth GPRS &amp; Linux</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,60,60#msg-60</link>
            <description><![CDATA[ <strong class="bbcode"><span style="font-size: medium">Intro</span></strong><br />
Recently, I installed a custom distro of Ubuntu Linux, on my Asus EEE PC 701 netbook, called <a rel="nofollow"  href="http://geteasypeasy.com">EasyPeasy</a>. It's a great little distro and much more satisfying to use than Windows XP, which really doesn't play nicely with SSDs and small screens. However, one thing that it took me a while to get working was access to the Internet via my mobile phone. What follows is, I hope, a useful guide to anyone following in my footsteps.<br />
<br />
<strong class="bbcode"><span style="font-size: medium">Where to Start?</span></strong><br />
I started by plugging in my USB Bluetooth <a rel="nofollow"  href="http://www.lm-technologies.com/home/bluetooth/LM505/bluetooth-nano-usb-adapter">dongle</a>. Immediately the Bluetooth icon appeared in the system tray. Searching for and pairing with my phone goes equally smoothly. I could then drag and drop files between my phone and netbook. So far so good, maybe Linux had finally made the jump in usability that I'd waited for all these years? The answer is a resounding 'almost'. Unfortunately the default GNOME Bluetooth Applet (v1.8 in this distro) give the ability to copy files too and from the attached device but little else. From here on it's all config files and terminal commands..<br />
<br />
<strong class="bbcode"><span style="font-size: medium">The Basics..</span></strong><br />
If you've not done this sort of thing before then read this section, otherwise feel free to skip to the next section.<br />
<br />
First of all your PC is going to need to open a <a rel="nofollow"  href="http://en.wikipedia.org/wiki/Point-to-Point_Protocol">PPP</a> connection to your phone that it can transfer data over. To do this you're going to have to create an RFCOMM device and a PPP script. Next you'll need to tell your PC how to tell your phone what you want it to do (eg: 'give me a GRPS internet connection using my PAYT profile') with AT commands (aka: <a rel="nofollow"  href="http://en.wikipedia.org/wiki/Hayes_command_set">Hayes' Commands</a>). Don't worry! I'm going to show you the commands that you'll need :D<br />
<br />
<strong class="bbcode"><span style="font-size: medium">Setting up communication with your phone</span></strong><br />
First pair your PC with your phone (I'm not going to cover that here as it seems very straight forward in modern Linux distos). Next we need to find out what reference ID your PC uses for your phone and which communication channel is being used for it. You can find out both of these by running the following command from the Ubuntu terminal app..<br />
<br /><pre class="bbcode">
sudo sdptool browse</pre>
<br />
The output will look something like this..<br />
<br /><pre class="bbcode">
Inquiring ...
Browsing <strong class="bbcode">00:1E:45:B1:58:35</strong> ...
Service Description: Sony Ericsson W880
Service RecHandle: 0x10000
Service Class ID List:
  &quot;PnP Information&quot; (0x1200)

Service Name: Dial-up Networking
Service RecHandle: 0x10002
Service Class ID List:
  &quot;Dialup Networking&quot; (0x1103)
  &quot;Generic Networking&quot; (0x1201)
Protocol Descriptor List:
  &quot;L2CAP&quot; (0x0100)
  &quot;RFCOMM&quot; (0x0003)
    <strong class="bbcode">Channel: 2</strong>
Profile Descriptor List:
  &quot;Dialup Networking&quot; (0x1103)
    Version: 0x0100</pre>
<br />
I've highlighted the device ID and channel number although it should be obvious :).<br />
<br />
Now open up your favorite editor with root access. I used <a rel="nofollow"  href="http://www.jedit.org/">JEdit</a>, here's an example command for doing that..<br />
<br /><pre class="bbcode">
sudo jedit</pre>
<br />
Open (or create if it doesn't exist) a file called '/etc/bluetooth/rfcomm.conf' and place the following into it (taking care to substitute the channel and device ID of your phone)..<br />
<br /><pre class="bbcode">
rfcomm0
{
  bind yes;
  device 00:1E:45:B1:58:35;
  channel 2;
  comment &quot;sonymobile&quot;;
}</pre>
<br />
Now restart your PC so that Linux can read your new config and create the device that represents your phone (ie: rfcomm0).<br />
<br />
<strong class="bbcode">Important:</strong> If you don't restart you will encounter errors in the next bit!<br />
<br />
<strong class="bbcode"><span style="font-size: medium">How to create a PPP connection to your phone.</span></strong><br />
Open (or create if it doesn't exist) a file called '/etc/ppp/peers/mobilenet'. Into it place the following..<br />
<br /><pre class="bbcode">
# Keep pppd attached to the terminal:
# Comment this to get daemon mode pppd
nodetach

# Debug info from pppd:
# Comment this off, if you don't need more info
debug

# Show password in debug messages
show-password

# Connect script:
# scripts to initialize the GPRS modem and start the connection,
# wvdial command is for Orange SPV while other phones should work with chat
connect &quot;/usr/sbin/chat -v -f /etc/chatscripts/mobilenet&quot;
#connect /etc/chatscripts/BluetoothDialup
#connect &quot;/usr/bin/wvdial --chat --config /etc/ppp/peers/gprs-wvdial.conf radiolinja_usb_orange_spv&quot;

# Disconnect script:
# AT commands used to 'hangup' the GPRS connection.
#disconnect /etc/ppp/peers/gprs-disconnect-chat

# Serial device to which the GPRS phone is connected:
# /dev/ttyS0 for serial port (COM1 in Windows),
# /dev/ircomm0 for IrDA,
# /dev/ttyUB0 for Bluetooth (Bluez with rfcomm running) and
# /dev/ttyUSB0 for USB
#/dev/ttyS0     # serial port one
#/dev/ttyS1     # serial port two
#/dev/ircomm0   # IrDA serial port one
/dev/rfcomm0    # Bluetooth serial port one
#/dev/ttyUSB0   # USB serial device, for example Orange SPV

# Serial port line speed
115200  # fast enough
#57600  # perhaps usefull with IrDA

# Hardware flow control:
# Use hardware flow control with cable, Bluetooth and USB but not with IrDA.
crtscts  # serial cable, Bluetooth and USB
#nocrtscts # IrDA

# Ignore carrier detect signal from the modem:
local

# IP addresses:
# - accept peers idea of our local address and set address peer as 10.0.0.1
# (any address would do, since IPCP gives 0.0.0.0 to it)
# - if you use the 10. network at home or something and pppd rejects it,
# change the address to something else
:10.0.0.1
#
# Disable the previous setting if you are using office.vodafone.nl as access point

# pppd must not propose any IP address to the peer!
noipdefault

# Accept peers idea of our local address
ipcp-accept-local

# Add the ppp interface as default route to the IP routing table
defaultroute
# DNS servers from the phone:
# some phones support this, some don't.
usepeerdns

# ppp compression:
# ppp compression may be used between the phone and the pppd, but the
# serial connection is usually not the bottleneck in GPRS, so the
# compression is useless (and with some phones need to disabled before
# the LCP negotiations succeed).
novj
nobsdcomp
novjccomp
nopcomp
noaccomp

# The phone is not required to authenticate:
noauth

# Username and password:
# If username and password are required by the APN, put here the username
# and put the username-password combination to the secrets file:
# /etc/ppp/pap-secrets for PAP and /etc/ppp/chap-secrets for CHAP
# authentication. See pppd man pages for details.
# Example, Radiolinja operator pap-secrets:
# &quot;rlnet&quot;         *       &quot;internet&quot;    *
user &quot;web&quot;
#user &quot;Orange&quot;

# Asyncmap:
# some phones may require this option.
#asyncmap 0xa0000

# No magic:
# some phones may require this option.
#nomagic

# Require PAP authentication:
# some phones may require this option.
#require-pap</pre>
This is a slightly modified version of a script that I found <a rel="nofollow"  href="https://help.ubuntu.com/community/BluetoothDialup/Vodafone">here</a>. One bit that you may need to change is the user name. Also note that if PAP is required for you phone you'll need to put a password in the '/etc/ppp/pap-secrets' file.<br />
<br />
The next stage is to create a ppp chat script of AT commands to tell your phone what you want it to do. Unfortunately this part of the process varies depending on your provider. What follows works for Vodafone UK but may need some tweeking for other providers.<br />
<br />
Put the following in a file called '/etc/chatscripts/mobilenet'.<br />
<br /><pre class="bbcode">
TIMEOUT 45
ECHO    ON
ABORT   '\nBUSY\r'
ABORT   '\nERROR\r'
ABORT   '\nNO ANSWER\r'
ABORT   '\nNO CARRIER\r'
ABORT   '\nNO DIALTONE\r'
ABORT   '\nRINGING\r\n\r\nRINGING\r'
''      \rAT
OK-+++\c-OK     ATH0
OK      'AT+CGDCONT?'</pre>
<br />
The output should contain a response from you phone telling you the deatils of the installed connection profiles. To run the script use the following command with your phone connected via Bluetooth..<br />
<br /><pre class="bbcode">
sudo pon mobilenet</pre>
<br />
The output will look something like this..<br />
<br /><pre class="bbcode">
AT
OK
ATH0
OK
AT+CGDCONT?
+CGDCONT: 1,&quot;IP&quot;,&quot;wap.vodafone.co.uk&quot;,&quot;0.0.0.0&quot;,0,0
+CGDCONT: 2,&quot;IP&quot;,&quot;pp.vodafone.co.uk&quot;,&quot;0.0.0.0&quot;,0,0
+CGDCONT: 3,&quot;IP&quot;,&quot;internet&quot;,&quot;0.0.0.0&quot;,0,0
+CGDCONT: 4,&quot;IP&quot;,&quot;pp.vodafone.co.uk&quot;,&quot;0.0.0.0&quot;,0,0</pre>
<br />
Choose the profile you want to use and the remember it's number (eg: 4). Next add the following to the bottom of the above script..<br />
<br /><pre class="bbcode">
TIMEOUT 30
OK      ATD*99***<strong class="bbcode">4</strong>#
CONNECT &quot;&quot;</pre>
<br />
Note the '4' in the special phone number that we dial on the second to last line. This is the profile number, substitute it for the profile number you want to use. now run the script again and you should be connected!<br />
<br /><pre class="bbcode">
sudo pon mobilenet</pre>
<br /><pre class="bbcode">
AT
OK
ATH0
OK
AT+CGDCONT?
+CGDCONT: 1,&quot;IP&quot;,&quot;wap.vodafone.co.uk&quot;,&quot;0.0.0.0&quot;,0,0
+CGDCONT: 2,&quot;IP&quot;,&quot;pp.vodafone.co.uk&quot;,&quot;0.0.0.0&quot;,0,0
+CGDCONT: 3,&quot;IP&quot;,&quot;internet&quot;,&quot;0.0.0.0&quot;,0,0
+CGDCONT: 4,&quot;IP&quot;,&quot;pp.vodafone.co.uk&quot;,&quot;0.0.0.0&quot;,0,0

OK
ATD*99***4#
CONNECT
Script /usr/sbin/chat -v -f /etc/chatscripts/mobilenet finished (pid 4540), status = 0x0
Serial connection established.
using channel 2
Using interface ppp0
Connect: ppp0 &lt;--&gt; /dev/rfcomm0
sent [LCP ConfReq id=0x1 &lt;asyncmap 0x0&gt; &lt;magic 0xde7e6580&gt;]
rcvd [LCP ConfReq id=0x2 &lt;accomp&gt; &lt;pcomp&gt; &lt;asyncmap 0x0&gt; &lt;magic 0xf11fd4c8&gt;]
sent [LCP ConfRej id=0x2 &lt;accomp&gt; &lt;pcomp&gt;]
rcvd [LCP ConfAck id=0x1 &lt;asyncmap 0x0&gt; &lt;magic 0xde7e6580&gt;]
rcvd [LCP ConfReq id=0x3 &lt;asyncmap 0x0&gt; &lt;magic 0xf11fd4c8&gt;]
sent [LCP ConfAck id=0x3 &lt;asyncmap 0x0&gt; &lt;magic 0xf11fd4c8&gt;]
sent [LCP EchoReq id=0x0 magic=0xde7e6580]
sent [CCP ConfReq id=0x1 &lt;deflate 15&gt; &lt;deflate(old#) 15&gt;]
sent [IPCP ConfReq id=0x1 &lt;addr 0.0.0.0&gt; &lt;ms-dns1 0.0.0.0&gt; &lt;ms-dns2 0.0.0.0&gt;]
rcvd [LCP EchoRep id=0x0 magic=0xf11fd4c8]
rcvd [LCP ProtRej id=0x1 80 fd 01 01 00 0c 1a 04 78 00 18 04 78 00]
Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfNak id=0x1 &lt;addr 10.0.0.1&gt;]
rcvd [IPCP ConfNak id=0x1 &lt;addr 10.177.189.131&gt; &lt;ms-dns1 10.206.65.68&gt; &lt;ms-dns2 10.206.65.68&gt;]
sent [IPCP ConfReq id=0x2 &lt;addr 10.177.189.131&gt; &lt;ms-dns1 10.206.65.68&gt; &lt;ms-dns2 10.206.65.68&gt;]
rcvd [IPCP ConfReq id=0x2]
sent [IPCP ConfAck id=0x2]
rcvd [IPCP ConfAck id=0x2 &lt;addr 10.177.189.131&gt; &lt;ms-dns1 10.206.65.68&gt; &lt;ms-dns2 10.206.65.68&gt;]
not replacing existing default route via 192.168.1.1
Cannot determine ethernet address for proxy ARP
local  IP address 10.177.189.131
remote IP address 10.0.0.1
primary   DNS address 10.206.65.68
secondary DNS address 10.206.65.68
Script /etc/ppp/ip-up started (pid 4547)
Script /etc/ppp/ip-up finished (pid 4547), status = 0x0</pre>
<br />
I hope this was all helpful. Any questions or suggestions for improving the article are welcome :)]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Mon, 26 Oct 2009 19:19:04 +0000</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,59,59#msg-59</guid>
            <title>Bloom</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,59,59#msg-59</link>
            <description><![CDATA[ Ever wondered how that fancy bloom effect works? Many games these days use bloom or other similar techniques to add hazy coronas to emissive surfaces and/or specular reflections. If used correctly it can add a really nice feel to an image. The basic technique is as follows..<br />
<br />
1. Render your scene<br />
2. Render your scene again but this time only apply emissive and specular lighting.<br />
3. Downscale the second render using some sort of suitable blur function (eg: gaussian convolution filtering).<br />
4. Add the result of step 3 to the results of step 1.<br />
<br />
Note: The degree of downscaling effects the size of the coronas produced.<br />
<br />
In software rendering step 3 is the most expensive part of the process because you will have to perform many samples in order to get a smooth enough blur. I chose to use a 3x3 gaussian filter (9 samples per pixel) because it gave some nice looking results, however it is quite slow.<br />
<br />
Below are some screenshots of the various stages...<br />
<br />
<u class="bbcode">Stage 1</u> - The plain render<br />
[attachment 26 plain.png]<br />
<u class="bbcode">Stage 2</u> - The bloom render<br />
[attachment 27 bloom.png]<br />
<u class="bbcode">Stage 3</u> - The result<br />
[attachment 28 final.png]<br />
<br />
Note that because this is in Java and entirely performed on the CPU I've had to go for a very low-resolution bloom render. This means that my results are a little blocky, but it does run at around 30fps on my Core2 Duo :)<br />
<br />
To see it in action head over to <a rel="nofollow"  href="http://www.finalfury.co.uk/MAMLApplet7.php">here</a>.]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Sun, 26 Oct 2008 20:03:25 +0000</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?20,58,58#msg-58</guid>
            <title>NOS - Released at last!</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?20,58,58#msg-58</link>
            <description><![CDATA[ NOS has become public! Go check it out at [<a rel="nofollow"  href="http://www.finalfury.co.uk/NOS">www.finalfury.co.uk</a>]]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Announcements</category>
            <pubDate>Sun, 21 Sep 2008 10:58:32 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,57,57#msg-57</guid>
            <title>NOS - Released at last!</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,57,57#msg-57</link>
            <description><![CDATA[ I've finally taken the plunge and released the damn thing! I hope you all enjoy it :)<br />
<br />
Go here to register -&gt; [<a rel="nofollow"  href="http://www.finalfury.co.uk/NOS">www.finalfury.co.uk</a>]<br />
<br />
<center class="bbcode"><a rel="nofollow"  href="http://www.finalfury.co.uk/NOS">[attachment 25 4.jpg]</a></center>]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Sat, 20 Sep 2008 17:53:08 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,56,56#msg-56</guid>
            <title>NOS - Now with composition desktop effects...</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,56,56#msg-56</link>
            <description><![CDATA[ After getting most of NOS working it seemed to me that there was something major missing. &quot;Transparency!&quot; I cried, I must have semi-transparent menus!<br />
<br />
Ok, so maybe I'm over-exaggerating things a little but you have to admit that it's one of the visual niceties that makes bb4win and other blackbox systems so nice to use. So I set about hacking up Swing to create a composition desktop. The result is fully programmable (via the java.awt.Composite interface) composition effects on any NOSWindow object. Also, because each NOSWindow now has an individual back buffer, the annoying z-fighting issues inherent in the way that Swing JPanels are rendered have been avoided and live-previews of minimised windows can be displayed (ie: a bit like the Vista taskbar).<br />
<br />
<center class="bbcode">[attachment 24 NOS_Composite.jpg]<br />
Style: Biohazard by xMonKeyx<br />
Background: Reminiscence 3 by mayhs82<br />
</center><br />
<br />
It works beautifully even when animated windows are present on the desktop. Obviously there is a cost in both memory and CPU usage, but so far this appears to be minimal.<br />
<br />
I know that I've said this before, but I plan to release NOS into the wild next weekend. All that remains for me to do is a bit of a code clean-up and possibly an improvement of the HTTP file transfer code. The later would involve writing my own HTTP 1.1 communications class instead of using the built in java.net.HttpURLConnection object which creates a new connection to the server for every transmission ala HTTP 1.0. Moving to a single static connection would vastly increase turn-around and decrease system load when browsing files and other activities which require lots of communication with the server.]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Mon, 15 Sep 2008 10:04:40 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,53,53#msg-53</guid>
            <title>NOS - Almost ready for the masses...</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,53,53#msg-53</link>
            <description><![CDATA[ I've been busy writing some more apps for NOS as well as ironing out a few bugs and adding some new features. The screen shot below shows the new mini web browser application (just uses the built in JEditorPane, can only view very simple webpages) and, not that you can tell in the screenshot, 3d animated desktop backgrounds. I estimate that I should have a full version of this ready for public use in about a week if all goes well.<br />
<br />
<center class="bbcode"><br />
[attachment 21 NOS_Gruppled.jpg]<br />
Style: Gruppled by Craig Laparo<br />
Background: Island 3D MAML Scene by Kaloth<br />
</center><br />
<br />
The animated desktop backgrounds are created using my very own software 3D engine called MAML. If you have Java installed you will see an example at the top of this page displaying a few random 3d models. MAML looks like XML and is a little like VRML in the way that it works (ie: hierarchical modelling). You can find some more examples of MAML <a rel="nofollow"  href="http://www.finalfury.co.uk/java.php">here</a>.]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Wed, 23 Jul 2008 16:28:10 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?3,44,52#msg-52</guid>
            <title>Re: RocketDock and BBwintrans?</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?3,44,52#msg-52</link>
            <description><![CDATA[ For some reason the exclude rule works correctly if you use the following...<br />
<br /><pre class="bbcode">
BBwintrans.plugin.exclude11: Rocket</pre>]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Blackbox</category>
            <pubDate>Wed, 16 Jul 2008 13:37:51 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,51,51#msg-51</guid>
            <title>NOS - Nomadic Operating System</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,51,51#msg-51</link>
            <description><![CDATA[ NOS is my attempt at writing a nomadic desktop environment. It uses Java as the base technology so that it can be used on a wide variety of machines. Users each have their own file system backed by a set of php scripts on a web server. This allows them to upload their own applications and files in any way they want. The main desktop environment is implemented to look like the popular Blackbox environment (<a rel="nofollow"  href="http://www.bb4win.org">bb4win</a>, <a rel="nofollow"  href="http://xoblite.net/">xoblite</a>, <a rel="nofollow"  href="http://bb4win.sourceforge.net/bblean/">bblean</a>) and includes a full blackbox style interpreter that can make use of the hundreds of styles available on the net (<a rel="nofollow"  href="http://www.boxshots.org/">boxshots</a>). I hope to release this project to the public in the near future, let me know if you're interested as I'm looking for some beta testers to try out and provide feedback on what I have so far :)<br />
<br />
<center class="bbcode"><br />
[attachment 20 NOS_ember.jpg]<br />
Style: Ember by Blockhead<br />
Background: Fzeema by Blockhead<br />
</center>]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Mon, 14 Jul 2008 21:32:09 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,50,50#msg-50</guid>
            <title>Website Attacked :(</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,50,50#msg-50</link>
            <description><![CDATA[ Some stupid hackers with nothing better to do than waste my time screwed up this forum today forcing me to restore from a recent backup. It's such a shame that people feel they have to express there pent up angst by destroying that which others strive so hard to create.]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Mon, 14 Jul 2008 21:30:49 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?3,39,49#msg-49</guid>
            <title>Re: BBPlugManager</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?3,39,49#msg-49</link>
            <description><![CDATA[ Where is langdis.dll located on your machine? Try putting it in the same directory as blackbox.exe, if it's not there already.<br />
<br />
And Merry Christmas to you too :)]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Blackbox</category>
            <pubDate>Thu, 03 Jul 2008 12:58:49 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?3,44,47#msg-47</guid>
            <title>Re: RocketDock and BBwintrans?</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?3,44,47#msg-47</link>
            <description><![CDATA[ Hmm, ok that should be working. I'll try it out this weekend when I get my PC at home working again.]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Blackbox</category>
            <pubDate>Thu, 03 Jul 2008 10:04:16 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?3,44,46#msg-46</guid>
            <title>Re: RocketDock and BBwintrans?</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?3,44,46#msg-46</link>
            <description><![CDATA[ Here is my file:<br />
<br />
#------GLOBAL SETTINGS-----#<br />
<br />
BBwintrans.plugin.global: FOCUS<br />
BBwintrans.plugin.globallevel: 200<br />
<br />
<br />
#------EXCLUDES-----#<br />
<br />
BBwintrans.plugin.exclude0: java<br />
BBwintrans.plugin.exclude2: iexplore<br />
BBwintrans.plugin.exclude3: DVB-TV<br />
BBwintrans.plugin.exclude4: BLACKBOX<br />
BBwintrans.plugin.exclude5: EA GAMES<br />
BBwintrans.plugin.exclude6: PCALERT<br />
BBwintrans.plugin.exclude7: mstsc<br />
BBwintrans.plugin.exclude8: windvd<br />
BBwintrans.plugin.exclude9: photoshop<br />
BBwintrans.plugin.exclude10: rundll32<br />
BBwintrans.plugin.exclude11: RocketDock<br />
BBwintrans.plugin.exclude12: launchy<br />
BBwintrans.plugin.exclude13: gdiplus<br />
<br />
<br />
<br />
#------INDIVIDUAL SETTINGS-----#<br />
<br />
BBwintrans.plugin.focuslevel: 255]]></description>
            <dc:creator>cmetcjr</dc:creator>
            <category>Blackbox</category>
            <pubDate>Tue, 01 Jul 2008 15:50:12 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?3,44,45#msg-45</guid>
            <title>Re: RocketDock and BBwintrans?</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?3,44,45#msg-45</link>
            <description><![CDATA[ The reason that bbwintrans breaks rocketdock is similar to the problem that occurs with winamp. They both use colour key transparency (think non-rectangular windows), which bbwintrans can't handle correctly due to API limitations that I haven't found a work-around for yet. So you've done the right thing by trying to exclude it from bbwintrans. winModule give the following output for rocketdock...<br />
<br /><pre class="bbcode">
D:\src&gt;winModule

X:616, Y:32
C:\Program Files\RocketDock\RocketDock.exe</pre>
<br />
So using something like...<br />
<br /><pre class="bbcode">
BBwintrans.plugin.exclude1: RocketDock</pre>
<br />
...should suffice (as I think you have tried). Can you post your BBwintrans.rc file?<br />
<br />
Thanks,]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Blackbox</category>
            <pubDate>Tue, 01 Jul 2008 12:51:53 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?3,44,44#msg-44</guid>
            <title>RocketDock and BBwintrans?</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?3,44,44#msg-44</link>
            <description><![CDATA[ I use the latest BBlean and the latest RocketDock. I also use the latest BBwintrans.<br />
I have it configured to display the focused window at full opacity and all other windows at 200 (alpha transparency). This works fine and my my excludes work fine, with the exception of RocketDock. RocketDock and BBwintrans do not play well together, whenever BBwintrans is active, RD stops working right. Here is a screenshot of my desktop with the failing RD. I don't know if you know why this happens or how to fix it, but I have excluded all programs with &quot;rocketdock&quot; anywhere in the module name and it still happens this way.<br />
<br />
Any help would be appreciated.<br />
Screenshot of what it's supposed to look like: <a rel="nofollow"  href="http://cmetcjr.com/screen_right.jpg">http://cmetcjr.com/screen_right.jpg</a><br />
Screenshot of what it does look like: <a rel="nofollow"  href="http://cmetcjr.com/screen_wrong.jpg">http://cmetcjr.com/screen_wrong.jpg</a><br />
<br />
-cmetcjr]]></description>
            <dc:creator>cmetcjr</dc:creator>
            <category>Blackbox</category>
            <pubDate>Tue, 01 Jul 2008 05:52:08 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,43,43#msg-43</guid>
            <title>Sin City Image Filter (Colour Isolation)</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,43,43#msg-43</link>
            <description><![CDATA[ I've often wondered how they produced that funky looking image effect used in the film Sin City. What choice is a computer wielding geek left with but to implement their own version of it! :D So, what they appear to do is pick a colour that they want to isolate in the final image (eg: red) and then desaturate (ie: fade to grey scale) all the other colours.<br />
<br />
A great way to isolate a colour is to convert your image to YUV (see handy wikipedia <a rel="nofollow"  href="http://en.wikipedia.org/wiki/Y%27UV">page</a>) and use distance measurement in the UV plane to work out how close to your desired colour, irrespective of brightness (Y plane), the current pixel is. Then back in RGB space all you have to do is desaturate your pixel based on the distance value you calculated in YUV space. It took a bit of tweaking to get the relationship between distance in the UV plane and desaturation looking nice. This is the formulae I came up with...<br />
<br /><pre class="bbcode">
scale = max(0.0f, min(1.0f, (D - T)/S));

avg = (int)(((in_r + in_g + in_b) / 3) * scale );

out_r = (int)( in_r * ( 1.0f - scale ) + avg );
out_g = (int)( in_g * ( 1.0f - scale ) + avg );
out_b = (int)( in_b * ( 1.0f - scale ) + avg );</pre>
<br />
<br />
Where D is the distance in UV, T is the tolerance level and S is the spread. By 'spread' I mean the smoothness of the gradient between fully saturated and fully unsaturated.<br />
<br />
The end result is quite good if you then ramp up the contrast loads as well :P<br />
<br />
[attachment 17 red_dress.jpg][attachment 18 red_dress_iso.jpg][attachment 19 red_dress_iso_contrast.jpg]]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Tue, 10 Jun 2008 13:17:47 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?3,39,39#msg-39</guid>
            <title>BBPlugManager &amp; langdis.dll</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?3,39,39#msg-39</link>
            <description><![CDATA[ Hi Kaloth<br />
Im using your plugin for a while and have no problem unless I  wanted to try Language\Locale Display by Tres`ni...<br />
It shows a MsgBox : Could not link to plugin functions in...  ...\langdis.dll <br />
If I try to load this plugin via xoblite menu, it loads correctly with no err..<br />
...so what is wrong ? :)<br />
<br />
<br />
Petsof<br />
p.s. Marry christmass ;)]]></description>
            <dc:creator>petsof</dc:creator>
            <category>Blackbox</category>
            <pubDate>Mon, 24 Dec 2007 15:05:12 +0000</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,25,25#msg-25</guid>
            <title>Water</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,25,25#msg-25</link>
            <description><![CDATA[ I've recently been playing about with the idea of water simulation. My idea was to simulate the surface of a body of water in 3D using the abstraction of a mesh with springs attached to each of the vertices.<br />
<br />
In a spring system the amount of acceleration can be calculated from the distance to the equilibrium point. So in other words the more stretched the spring is the more it wants to be back at the equilibrium point.<br />
<br />
This on it's own works nicely but only simulates each vertex of the surface individually. I needed a way to link the surface together as a whole and therefore create a wave system. To do this I simply do a bit of post processing and move each of the vertices to the average of it's neighbours. This means that displacements (and therefore accelerations) ripple out from their sources. The final result is quite pleasing to the eye...<br />
<br />
<center class="bbcode">[attachment 10 water.jpg]</center><br />
<br />
You can see the animation in action <a rel="nofollow"  href="http://www.finalfury.co.uk/MAMLApplet6.php">here</a>]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Fri, 19 Oct 2007 10:33:54 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,24,24#msg-24</guid>
            <title>Video and Subs...</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,24,24#msg-24</link>
            <description><![CDATA[ <strong class="bbcode">Sub Filtering</strong><br />
<br />
PNG uses a process it calls 'filtering' to prepare image data for scanline compression. Various filter functions are used on a per-scanline basis, but the one I'll talk about here is call 'Sub'.<br />
<br />
What the Sub filter does is to store the differences  (using mod 256 arithmetic) between the bytes in each pixel instead of the absolute values. This means that for a 8bit grayscale image the following gradient...<br />
<br />
0, 1, 2, 3, 4, 5, 6, 7, 8<br />
<br />
becomes...<br />
<br />
0, 1, 1, 1, 1, 1, 1, 1, 1<br />
<br />
As you can probably imagine, the filtered data is much easier to compress than the original. This is how PNG manages to compress it's <a rel="nofollow"  href="http://www.mywebsite.force9.co.uk/png/png24.htm">famous</a> 48mb gradient image into 58kb.<br />
<br />
Applying this filter to my image compression technique on a per-tile basis achieves the same affect. It is not however quite as good at compressing artificially constructed gradients because working on a per-tile basis means that the arrays of numbers contain quite a few jumps when we wrap around the stride of the tile. I'm happy with this however because in 'real' images (eg: photographs) I get comparable and often better compression ratios.<br />
<br />
<strong class="bbcode">Video Encoding</strong><br />
<br />
One thing I wanted to use my image compression technique for was VNC between my PDA (Dell Axim x30 High) and desktop PC. My use of quadtrees means that a computer desktop screenshot is very highly compressed (&gt;90% most of the time). But to achieve better compression I decided to use an incremental technique to send the VNC data.<br />
<br />
Given that not much changes from frame to frame on a computer desktop I decided to send the difference between frames instead of absolute images. This means that whole swathes of the image get reduced down to blank pixels which can be encoded in a highly compressed manner using the quadtrees. Neat huh? The quadtrees effectively give me a very cheap form of motion detection.<br />
<br />
Trying this out on my PDA gave framerates of 25fps in a standard desktop with notepad and a few other apps open. I also tried out a few games and got 15fps in Transport Tycoon, but only about 1-2fps in Oblivion. Oblivion goes so slowly because in most frames the entire screen changes, this means that the entire image has to be sent each time.<br />
<br />
I hope to put my VNC ap on this site for download when I've ironed out the rough edges.]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Sat, 06 Oct 2007 11:39:16 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,23,23#msg-23</guid>
            <title>Image Compression</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,23,23#msg-23</link>
            <description><![CDATA[ I was looking at the specs for the PNG format the other day and realised that it's just GIF with support for true 32bit colour and an open compression format. Which lead me to thinking that there must be a way to improve on it :)<br />
<br />
So, armed with quad trees and a gzip compressor class I set out to create a similar format that uses quadtrees to identify 'tiles' within an image that are the same colour.<br />
<br />
The crux of my idea is to split the image into manageable tiles (eg: 32x32) and then create a quadtree from the top 32x32 level down to the 1x1 level. Then in a second pass work through the tree grouping all the neighbouring subtrees that contain the same colour. This means that for each 32x32 tile of an blank image I only store one 32bit colour.<br />
<br />
If I then combine this with a pallet system akin to that of GIF &amp; PNG it leads to (for a 2 tone image) 1 bit per 32x32 tile plus 2x32bit colours.<br />
<br />
Next some header information is needed to tell the decompresser about each level of the tree. This is simply a byte per tree level where one nybble is used to indicate leaf nodes and the other the data type of the leaf nodes. The data type is required because the quadtree method actually inflates data if you have an image where all the neighbouring pixels are different colours (due to all the header info needed at each sub-level). So in this method a leaf can either be a single pixel or a group of contiguous pixels (ie: just like a standard bitmap).<br />
<br />
So, all this means that in the end for a blank image of 64x64 in 32bit colour we have...<br />
<br /><pre class="bbcode">
4 bytes   - format identifier
1 byte    - format version
4 bytes   - pallet size
4 bytes   - pallet colour 0
4*1 bytes - tile headers
4*1 bytes - tile colours</pre>
<sup class="bbcode">(note that the tile colour has to be rounded up to a byte in size to make decoding easier)</sup><br />
<br />
This becomes a total size of 25 bytes (prior to gzip compression). PNG gets a size of 301 bytes and BMP gets 16384 bytes. Not a bad improvement (99.85% vs 98.16% compression). For generic photographs and such the difference becomes much less, but my format still comes out on top of PNG for most cases :)<br />
<br />
The one case where I consistently lose out to PNG is when an image contains a lot of gradients. In this case my quadtree technique doesn't gain me any compression and I'm left to rely on colour pallets and standard gzip compression.<br />
<br />
I'll post some more examples and details of how I improved this to make a motion detecting video codec soon.]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Fri, 28 Sep 2007 11:06:39 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,19,19#msg-19</guid>
            <title>(Intermission) In-Body Attachments</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,19,19#msg-19</link>
            <description><![CDATA[ Attaching images to a post in Phorum is very easy once you've installed the correct mod, but updating all the templates to work with that mod is rather difficult. For example, the image below should appear in the post...<br />
<br />
<center class="bbcode">[attachment 8 leafy.jpg]</center><br />
<br />
But, as you can see it is not visible. Hopefully I can get it to show up otherwise this blog is going to contain a lot more posts like this one....<br />
<br />
ARG! :X<br />
<br />
[EDIT] YAY! it works now :D [/EDIT]]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Thu, 27 Sep 2007 12:18:42 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?4,3,3#msg-3</guid>
            <title>To blog or not to blog?</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?4,3,3#msg-3</link>
            <description><![CDATA[ Everyone seems to have a fancy blog these days, so here is mine. It's not going to be regular or particularly interesting, but it should provide a place where I can tell you all about my latest (often pointless) inventions :)<br />
<br />
Can you wait? Can you? I think not!]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Developement Blog</category>
            <pubDate>Mon, 03 Sep 2007 15:46:43 +0100</pubDate>
        </item>
        <item>
            <guid>http://www.finalfury.co.uk/phorum/read.php?1,2,2#msg-2</guid>
            <title>New phorum!</title>
            <link>http://www.finalfury.co.uk/phorum/read.php?1,2,2#msg-2</link>
            <description><![CDATA[ PhpBB was becoming a target for spammers so I've switched to Phorum5 to try and avoid the issues. Hopefully this will keep them at bay for at least a while :)]]></description>
            <dc:creator>Kaloth</dc:creator>
            <category>Misc. Discussion</category>
            <pubDate>Sun, 26 Aug 2007 22:47:37 +0100</pubDate>
        </item>
    </channel>
</rss>
