Fatcats BBS

Popular Projects
DrugLord, a Dope Wars style door game
FatFish, a fishing simulation door game
Haiku OS ports and stuff
SyncHack, multiplayer rogue-like BBS shell
Synkroban, Sokoban for Synchronet

Arfonzo's Blog

11/11/2009 18:45 GMT | Turning a Physical Machine into a Virtual Machine
This morning my work laptop died a horrible and painful death. Suffice it to say that burning smell was not the smell of bacon on the pan but rather my poor work laptop melting internally.

Luckily, I was able to pull out the hard drive and plug it in elsewhere to ensure that I hadn't lost any hard drive data. What little fortune I had today was in discovering that the hard disk itself was fine.

This left me with a dead computer, a good hard drive, and no way to run the drive.

Enter P2V. Using WinImage or any other tool that can convert a drive into a .VHD file, I managed to create an image of my notebook's drive into a standard VHD.

At this point you may have read about HAL issues when using the VHD, blue screens and other horrific stuff. I was able to ignore all of these issues simply by creating a virtual machine in VirtualBox (not VMWare, Virtual Server or Hyper-V). VirtualBox now supports VHDs, so it's simply a matter of creating a new VM, and using your VHD as an existing drive.

I was able to boot up without problems, and Windows 7 in the VM automatically downloaded all the new drivers I needed (such as the VM audio card, network card, etc.). Installing virtual additions also works. It doesn't get any easier than that!

30/09/2009 07:35 BST | Windows and Linux Seamlessly
Look ma, two OSes, one Desktop (and I ain't talking Cygwin cheese either...):


Yes yes... I know you're scared... let the VM frenzy begin!

22/09/2009 18:09 BST | Video Game Music
If you have ever been chez nous, you've probably noticed that I'm really into video game music. In particular, the OverClocked Remix project: a gathering of musicians worldwide dedicated to making video game remixes.

OC Remix isn't new--the community has been releasing content for years now. Did I mention all of this is free? Check out the compilations and albums they've got for download (I can get over 1MB/sec downstream via the torrents on their page). Most releases come as MP3s and fully lossless FLAC or WAV for ear-bursting glories.

If you've played Street Fighter II Turbo HD Remix, the soundtrack was created by OC Remix artists (I bought this game for XBox360 Live Arcade and came to the sad realisation that my aged reflexes can no longer pull of Hadoukens with the best of 'em...).

Here are a few albums and tracks which I have particularly enjoyed in recent years:

Kirby's Adventure: Rise of the Star (2005)
Free Breezin' - Theme of Son of Wind

Final Fantasy VII: Voices of the Lifestream (2007)
Full Frontal Assault (Let the Battles Begin!)

Nomura Limit (Fight On!)

Super Street Fighter II Turbo: Blood on the Asphalt (2007)
Mercenary Boxing (Balrog Stage)

Doom II: Delta-Q-Delta (2008)
MAP08: The Duel (The Dave D. Taylor Blues)

02/09/2009 15:20 BST | Cygwin SSH Server and Windows 7
In order to install openssh server correctly for Windows 7, you will need to do the following:

- Install Cygwin in the normal way. Make sure you've got openssh and cygrunsrv as selected packages to install.
- Right-click the Cygwin shell icon, and Run as administrator.
- Run ssh-host-config. Follow the prompts carefully: if needed, it will tell you which permissions you need to set and where. Remember to say yes to privilege separation: it will create a user for you called cyg_runsrv which all cygwin services will run under in Windows 7.
- You should be able to start the service using cygrunsrv --start sshd, or by starting it as a normal service under Administrative Tools > Services.
- This does not automatically create and open firewall rules, so you will have to do this manually.


"Will this give you the ability to acess your c:/Users/****/My Documents while sshing into your machine?"
- Matt, 25 Feb 10 at 02:08

"Hi Matt,

Yes it will.

Kind regards,"
-Art, 3 Mar 10 at 09:38

18/07/2009 21:25 BST | Outlook 2010 TP does not work with Mobile Device Center
... apparently they didn't think it was important for the Technical Preview to be able to sync things with mobile devices anymore... nice one.

Not very Enterprise-ready now, is it, guys?


"yeap! I have installed today the Of2010 TP in my Win7 and my surprise was I can't sync my data with my WinMo. Just OneNote and Files works! Office Team messed up!"
- Cleverson, 26 Jul 09 at 00:04

"Hi Cleverson, I agree.

Not only did Outlook 2010 refuse to sync, it actually deleted all my Active Sync items from the mobile. Just a note of caution for anyone else feeling brave.

I have read that newer HTCs can sync with it, but I don't have confirmation of this."
- Art, 26 Jul 09 at 12:43

"Same here... Just installed Win7 RTM x64 + Office 2010 TP and Windows Mobile Device Center seems not to recognize Outlook 2010 ."
- Caio Proiete, 8 Aug 09 at 18:37

"Same for me. I installed the 2010 Beta and now my WInMbile 6.1 (HTC Touch Pro) wont sync."
- ANdy Godfrey, 19 Jan 10 at 18:39

"Have the release 2010 from Technet Sub and this is still not fixed. Doesn't recogize that Office has been installed it says. Except of course it still recognizes OneNote as noted above.

I have the AT&T Tilt 2 with WinMo 6.5 Prof, so it's not an old phone."
- Tim Johnson, 27 Apr 10 at 17:07

"Forgot one thing. It only has the couple of contacts that are also in my Windows Messenger setup. That's the only thing it kept."
- Tim Johnson, 27 Apr 10 at 17:08

16/07/2009 19:59 BST | Popfly Shutting Down
Just received an e-mail from the (apparently) ex-folks at Microsoft Popfly:

I'm writing to thank you for registering and using Microsoft Popfly. I've been fortunate enough to see all the innovative mashups, Web pages, and games created by the Popfly community since we launched Popfly two years ago. It has truly been a pleasure to watch the spirit of creativity flow through a growing Popfly community over the life of the product.

It's with a heavy heart that I share some news with you today: on August 24, 2009, the Popfly service will be discontinued and all sites, references, and resources will be taken down.

After August 24th, your access to your Popfly account, including any games and mashups that you've created, will be discontinued. However, Microsoft is still very much dedicated to helping you express your creativity and pursuing a path to software development. If you're interested in refining your skills in Web applications, please visit Microsoft Web Platform Installer. For those interested in programming on the Xbox, then please visit Microsoft XNA or Microsoft Kodu. And for those who are interested in Windows programming, please visit Microsoft Express.

Thanks again for your support and please don't hesitate to contact us at popfly@microsoft.com if you have any questions.

John Montgomery
for the Popfly Team

Financial crisis et al, I suppose.

03/06/2009 00:00 BST | Compiling, Using and Developing on Microsoft Singularity
NOTE: For screenshots, please refer to the original post on the web, at:

I'll be adding more to this post quasi-frequently.

This post is based on the Singularity RDK 2.0 images and source, which are available here:

Singularity can be run fairly easily. You can also roll your own, and compile Singularity from source.


- Singularity RDK 2.0 ISO image.
- Singularity RDK 2.0 sources: if you wish to compile from source.
- A machine: physical, or virtual*.

* I've used Microsoft Virtual PC Beta on a Windows 7 7100 x64 host machine. I'm told it works for Virtual PC 2007. I was unable to get it working with VMWare Server 2.0.


- Download the ISO image.
- Burn it to a CD, or save to a location mountable for your VM.
- Boot the ISO.

You now should have Singularity running, using the default build. If you just wanted to look gangsta--mission accomplished, take your screenshots and begin bragging to on web forums.

However, if you want to explore the OS (such as it is), read on.


OK, don't panic. Looks daunting, I know. Acquaint yourself with this little gem, for starters: "Singularity_RDK_2.0_Source\docs\Design Notes\SDN87 RDK Applications Guide.pdf". It is from the RDK 2.0 source download, and will give you a good idea of how to use Singularity commands.


help: display all commands.
ipconfig @show: display status of all NICs.
dns @show: display DNS settings.
seditor: an EDLIN-like editor.
sc @show: show status of all services.
tasklist: show list of all tasks.
jobs: show a list of all jobs.
fg n: foreground job number n. Use ^C to quit the job.


Use & to run programs in the background. You can ^Z halt processes, then use bg n to background it.


The source comes with a PDF: Building and Running Singularity RDK 2.0.pdf. Read it.

Essentially you follow the instructions as given in that document:

- Get the prerequisites for the environment.
- Run "configure.cmd".
- Delete/rename the directory "Singularity_RDK_2.0_Source\base.obj", if it exists.
- Run the "Singularity RDK 2.0" desktop icon which will bring up a command line prepped for building Singularity or debugging it.
- At the prompt, type as below to build Singularity World distro:

...\base> msb Distro\World.proj

- If it dies saying it couldn't find a directory within "Singularity_RDK_2.0_Source\base.obj\MSBuildLogs\6\...", don't worry. Go into that MSBuildLogs directory and create the 6 directory. Now the MSBuild should work.

You can find generated ISO image for your build in "Singularity_RDK_2.0_Source\base.obj\Distros".
If you modify any .scripts, for example, you may wish to recompile to include the modifications on an ISO; you just repeat the above process after making your changes to "C:\src\Singularity_RDK_2.0_Source\base\Distro\Scripts\startup.script", for example.

As a rough benchmark, it takes me 10-15 minutes to build World on a quad core with 8 GB memory.


Aye, it works.

If you're ultra-lazy, just do the following:
Singularity>ipconfig @dhcp /dev/nic0 start

This should get you going with DHCP. It'll poll the DHCP server for DNS servers too.

You can set a static ip thusly:
Singularity>ipconfig /dev/nic0

The format is:
Ipconfig .

Remember that if you set a static IP using ipconfig, you will need to tell Singularity which DNS servers to use, check the dns command.


- Edit the file "Singularity_RDK_2.0_Source\base\Distro\LegacyPCDistro.xml".
- Enable the line:

- Recompile, and you've got FAT support.

Make sure you've partitioned your FAT drive beforehand. You should be able to see it listed in the /dev tree.

Now, you can @format, @mount and @unmount your FAT drive using fatcontrol.

.script FILES AND CUSTOMISING startup.script

If you are serious about using Singularity, you will likely want to modify your init/startup.script. The best way to do this is to edit this on your host machine, then msb.

Note that you will have to put 'single quotes' around all arguments. For example, the shell command hostname -n=paddington (this changes the machine's hostname to "paddington") would be put in startup.script as:

hostname '-n=paddington'

There are plenty of examples in the RDK for you to get started with. Here is Singularity booting up, setting hostname, a DHCP connection, a static IP, and mounting a FAT drive:
[Refer to website for screenshot.]


If you try to reboot or shutdown while there are jobs, Singularity will freeze. Nice. For now, just remember to kill all your jobs by foregrounding them (jobs, fg n, ^C).

Developing in Singularity

Read this thread which discusses the best way to develop for Singularity:

A quote:
copy an existing project like ...\base\Applications\Hello\
to ...\base\Applications\MyProj\
cd ...\base\Applications\MyProj\
rename .cs and .csproj files, edit them for content.
msb MyProj.csproj (until it compiles)
back to ...\base
edit distro\tiny.proj and add a line for your app

msb distro\tiny.proj

In general, I've found the process to be fairly straightforward, once you get the hang of it. I would recommend you compile a World distro, and keep the base.obj directory. Now, go into the base directory, and edit your sources/files.

The next time you msb the distro, it will only recompile/update the changed files. This is a pretty quick way to edit the scripts, and not too long if you are coding.

As a benchmark, it takes less than a minute for me to msb world, if I've made changes to 1 or 2 code projects within the source tree:

Debugging with WinDbg

- Create a named pipe to COM2, and you can call the debugger using "dbg.cmd /pipe".
- Now, when you start up your Singularity VM, it will automatically output the debug to WinDbg:

Caveats & Limitations
- Some example applications are buggy/not working.
- US keyboard layout only? I couldn't find a way to change this anywhere in the source.
- Couldn't get the /dev/audio device with Virtual PC Beta.

21/04/2009 12:27 BST | if (dd-wrt + xbox 360 == fail) then tomato;
Having had problems with my ISP's modem/router/firewall/wireless device, I wanted to bridge to a separate device to handle the routing, firewall and wireless.

I have been using a Linksys WRT54G version 1 for this task. The firmware had to be flashed with DD-WRT, which is a pretty good firmware all in all, but seemed to be stretching the limits of the version 1 WRT54G.

The vintage DD-WRT build, which is the appropriate flavour for the WRT54Gv1 is a stripped-down version of DD-WRT which doesn't contain some of the newer features. Although it was fairly stable, it got slow and unresponsive at times over wireless, and had some trouble maintaining long-term RDP sessions over wireless, dropping the connections maybe twice an hour for a minute or so each time. Although QoS may have been an issue, my clever rebuttal is that it doesn't work for me out of the box: I'm lazy as fuck, what do you expect?

All in all, DD-WRT worked better than the Speedtouch 780 as a router, and better than the stock Linksys or OpenWRT firmwares. My main problem with DD-WRT was that for some black magic voodoo reason, the XBox 360 was unable to join the wireless network. It could detect it, discover encryption method, but was unable to connect to the network no matter how hard I tried, no matter how hard I cried into my pillow.

After acquiring some expert/professional advice (i.e., googling the interwebs), I installed tomato the other day, and lo and beholdthe XBox was able to connect without problems. Tomato seems more responsive than the DD-WRT thus far, which is another bonus.

I'm not sure about the newer WRT54G models, but if you have a version 1, you may want to consider using tomato rather than the stock Linksys, DD-WRT or OpenWRT firmwares.

01/02/2009 19:55 GMT | Chinese New Year celebrations in London 2009
They decided to change the format of the annual CNY celebrations this year, I think it turned out for the worse. Chinatown was literally blocked up with people, and old people were pushing us quite ferociouslyit was quite a trauma, tbh.

The fireworks used to go off in Leicester Square every few hours, and the police would control the number of people in the area. This year, they decided to do only one show of fireworks, right before the end at 6pm.

The Dragon dancing through Chinatown had babies and we ended up seeing 3 or 4 different dragons, each causing a human traffic jam... pretty well planned guys.

Pure quality shot:

Mad mafia boss protection:


"Beware of the Shaolin Fists, min. They're the Third Floor Triads' worst enemies."
- Dr. Guildo, 2 Feb 09 at 01:00

"lulz, I always knew there was something up with them..."
- Art, 2 Feb 09 at 09:32

01/02/2009 18:57 GMT | Installing Debian 40r6 for Sparc
If your Sparc is not set to automatically boot from CDROM, you might find the following handy.

- Sparc (tested on UltraSparc 10)
- Debian image
- ISO burning software
- Monitor and keyboard for Sparc (alternatively, run from serial terminalserial cable required for this).

- Download the debian sparc netinst iso image.
- Burn the image to CD.
- Put the CD into your Sparc.
- Power off the Sparc.
- Plug in keyboard, mouse, and monitor.
- Power on the Sparc, you should see the POST and the machine initializing memory check.
- Hit STOP-A. You will be brought to the "ok" prompt.
- type "boot cdrom".
- Run through regular Debian setup process.

That's it.

You may want to read this previous post for installation caveats regarding MBR, SILO, and serial terminal install.

This procedure also worked to install Debian 5.0 for Sparc.

20/01/2009 17:26 GMT | The Genius
Poet, wrestler, manager, a true renaissance man in his bloom.



"You forgot to mention homo."
- Dr. Guildo, 21 Jan 09 at 18:57

14/01/2009 20:11 GMT | Back to basics...
Welp, that was fun. I guess it's time to use this thing again.

Now that WordPress has a decent CAPTCHA facility for comments, maybe I'll stop getting blasted with Viagra ads by robots-we'll see... it's a new year, full of incredible possibilities...


"You'll pay for this."
- Dr. Guildo, 15 Jan 09 at 02:47

Click here for past posts.