More apologies ...

If you apologise without admitting you're wrong, does it still count as apology?

If you apologise without promising you won't do it again, does it still count as apology?

If you apologise without reparations, does it still count as apology?

If you apologise on behalf of someone else, while that someone else clearly is neither sorry nor repentant, does your apology even have meaning?

Posted on 5 Nov 2021, 13:28 - Categories: General
No comments - Edit - Delete

Apologies, and donations

If you are forced to apologise, does it still count as an apology?

If you are forced to make a donation, does it still count as a donation?

If you are forced to be kind, does it mean that you are a kind person?

Is the action more important than the motive? Or is the motive more important than the action?

Posted on 5 Nov 2021, 13:23 - Categories: General
No comments - Edit - Delete

Fatdog64 812 RC is released

Yeap, still here. Still alive and kickin'.

Just dropping by to let you know something that you've probably already known: that is Fatdog64 812 RC has been released.

Release notes here, announcement (and discussions) here.

Get it from the usual mirrors:,, or

Unfortunately we lost AARNET for the Australian folks.

Posted on 17 Oct 2021, 00:58 - Categories: Fatdog64 Linux
No comments - Edit - Delete

Empty shells

I have been playing video games recently and are struck on how good games has progressed since the days I played Lemmings and Doom.

What struck me was mainly how good the graphics look like, how life-like it has become; especially when the game protagonists are humans. Their faces are pretty and handsome, their bodies are perfectly proportional and toned, their movements are graceful.

No doubt, this is due to the talented artists that created meticulously them, from draft drawings, 3D modelling, skinning and texturing, and motion capture; it is also the attestation of the immense computing power of modern GPUs. When combined with talented voice actors, the imagery is complete - we are, definitely, in the uncanny valley.

However, no matter how real these characters look like, I cannot drown a tiny voice in my head that keeps saying that what I see is all there is. There is no depth. There is no substance. All I see is literally skin-deep. Underneath the skin of that pretty girl or handsome man, there is nothing. They are hollow. Literally. They are just million of triangles covered by textures; voiced by someone else with stories which aren't their own. They are just empty shells.

But sadly, there are people - real-life people - who are real-life versions of these empty shells. They do have flesh and bone, and will bleed if hurt; but otherwise, what you see of them, is all there is. There is no depth. There is no soul. They speak with with other people's voices and their life are other people's stories. There is nothing else beyond what the eyes can see or the ears can hear or the hands can touch.

Beware that you don't fall for these empty shells. For beneath their skin, there is only nothingness that awaits you.

Even more important, is to beware that you don't become empty shells yourself. Focusing on the outside, but forgetting the most important part of yourself - what's inside.

For when that happens, you become nothing.

Posted on 9 Mar 2021, 23:55 - Categories: General
No comments - Edit - Delete

Ants in a terrarium

Imagine ants in a terrarium.

They are born there, they grow up there, they go about their daily life, and they die there too.

Lets say that there are multiple queens, each commanding multiple her own colonies of ants. Every ant will scavenge for food for its colonies, but they also fight for territories, and sometimes attempt dominion over other colonies. Generations of ants are born, alive, and die over time.

The ants think their problems are important, their possessions are important. Their territories are important, their dominion of other colonies are important. They think that they are important.

But they are just ants living in a terrarium.


(Originally contemplated on Feb 2006)

Posted on 10 Jan 2021, 01:58 - Categories: General
No comments - Edit - Delete

Christmas wishes 2020

Any bad things I did, I did it because of my own failings, so please forgive me.
Any good things I did, I could only do it because God has helped me, so to God all the glory.

Merry Christmas everyone.

Posted on 26 Dec 2020, 00:31 - Categories: General
No comments - Edit - Delete

Fatdog64 811 is released

Fatdog64 811 was released on 10 September 2020.

Release notes here, announcement here.

Get it from the usual mirrors:, aarnet,, or

Posted on 20 Sep 2020, 00:27 - Categories: Fatdog64 Linux
1 Comment - Edit - Delete


I've always enjoyed retro gaming. In Fatdog we have always had dosbox (emulator for DOS games) for as long as I can remember, and scummvm (for Sierra games) came a little bit later. I've recently added a few more emulators: mednafen (multi-emulators for GBA, SNES and others), desmume (NDS), duckstation and pcsxr (PS1) as well as pcsx2 (PS2). I threw ZX-Tune as well, to play the music from those old games.

But very recently I've been introduced to RetroPie, a distro for Raspberry Pi (raspi) which is dedicated to turning your raspi to a retro gaming machine. Since I have a dusty Pi3 laying around doing nothing (which I was supposed to use for testing Mick's Raspbian Buster but never got my lazy bum off to actually do it - sorry Mick!), I reckon, why not give it a try. If it doesn't work all I wasted is a couple of minutes downloading ~800MB image and couple of minutes "dd"-ing it.

As it turned out, it worked the first time around. Once the SD card as prepared, I put it inside the raspi, hooked the raspi to my TV, and then turned the raspi on. I was instantly asked to configure my controller (I didn't have one, but no problem, retropie accepts keyboard too). I configured the optional wifi setup (I didn't have to do it, but I wanted to try its samba feature). Then all I needed to do was to install the games (which I can install via USB, SFTP, or Samba). No stupid questions, no hassle, no config file. It's all ready to use. Most of the popular emulators were already included, and those that don't, are literally available for installation, a few clicks away.

With retropie on it, the raspi has been magically turned into a retro gaming machine. In the beginning I didn't believe that the raspi had enough muster to pull up a decent emulation, but I was pleasantly proven wrong. Most emulators worked well. Some had a few stutters every once a while but it was nothing to fret about.

The display quality was good, too. Retro games were notorious for displaying low-res pixelated images on today's high-res TV, but the emulators included in retropi had a few tricks up their sleeve to make the images sharper. I'm not surprised about that (after all I compiled some of those for Fatdog64 too) but what surprised me that the little raspi could pull off the enhanced graphics too. Well again not all emulators and not all games, but as I said, nothing to fret about.

Now, I have FatdogArm, Fatdog's variants that runs on ARM machines, the raspi included. If I really want to, I could, in theory, build and package all these myself too, producing a custom FatdogArm build that does what retropie does. All the software used in retropie is FOSS software. The standard release of FatdogArm was built to run as a "desktop-replacement" OS, but of course at its very core it was designed to be modded to produce a build that met specific needs. Making a retro gaming machine would be one of those.

But of course, why bother? The folks who makes retropie does a very good job, and the result is a very polished retro gaming software. Unless you try very very hard, you won't even know that beneath all the pretty faces, it runs Raspian Buster Linux. Rather than spending thankless hours building software on FatdogArm so it can become retropie wannabe, I may as well use retropie as is and start gaming with my kids

Anyway. In case you want to try retropie and don't have raspi, there is no need to fret and there is no need to fork out extra dollars too. While originally designed for raspi (all varians from pi 0/1/2/3/4), today's retropie supports other platforms: Odroid C1/C2, Odroid XU3/XU4, as well as standard PC! Yes, standard PC. You can use your old laptop, old desktop, NUC if you have one, etc basically any PC. The details are all on their website, if you're interested, go ahead and check it out.

Meanwhile, I've got a few games I need to catch up.

Disclaimer: I am not affiliated with retropie or any of its developers. In fact I wasn't aware that it exists until last week. I'm writing this to share with fellow retro gamers who aren't aware of retropie.

Posted on 3 Sep 2020, 02:00 - Categories: Linux General
No comments - Edit - Delete

spcplayer patch for libao

I've been intro retro gaming lately, and one of the interesting aspects of the retro gaming is their music; in particular, the music in their original format.

One of those formats is SPC. There are plenty of players for Windows (mostly plugins to popular music players), but standalone players for Linux are few and far between.

There is this player called AudioOverload but it is closed-source and output only to /dev/dsp. It does have a nice interface and supports many different video game formats, not only SPC.

The older version of gstreamer (0.10 branch) has a decoder in their 'bad plugins' collection called "GstNsfDec" which apparently can be used to decode SPC file (I haven't tested) - but do I really want to install the entire train of old gstreamer libs just to do that?

Then I found this vspcplay is an SDL-based player which is really nice and full featured; unfortunately the emulation isn't accurate; it sounds different from what I heard in the game and it eats 100% of one of my CPU core when running it.

Finally I found this one: SPC-PLAYER, a CLI player for SPC but unfortunately like AudioOverload it also outputs to /dev/dsp (and other OSS devices).

The problem with outputting to /dev/dsp is that whatever program is outputting the sound takes an exclusive use of the soundcard. I cannot play anything if I have my web brower open and one of its tab is pointing to youtube (even if nothing is being played), because the browser keep the sound access open and this prevents other programs to access /dev/dsp.

The only way to make work nicely is to use ALSA, which comes with built-in mixer (dmix) allowing multiple programs to use the sound card at the same time.

So I've written a simple patch for SPC-PLAYER to use libao, a very nice sound output library that enables us to output to a variety of output devices (ALSA, OSS< Pulse, etc) with exactly the same, simple API. Nice.

Well, if you're interested, you can find the patch in my patches page.

Note that SPC-PLAYER compiles in 32-bit only due to its extensive usage of x86 assembly in its APU emulation.


EDIT: and just after I spent the effort to create the patch, I found ZXTune which is a full-fledged multi-format chiptune player which includes support for SPC and many other formats! You know, you can't guess by its name alone (ZXTune - it plays only sounds for ZX Spectrum? Come on ...). It's open source and binary is provided, too! Works out of the box and supports the formats I'd love to play. The program comes in GUI flavours (Qt) and CLI, with only minimal dependencies needed (the rest of the libs needed were compiled statically with the binary).

So go ahead and use that instead.


EDIT: After finding ZX-Tune, JakeSFR informed me that deadbeef music player can also play SPC files.

Interesting. I looked into that, and found that deadbeen uses a library called "game music player", also known as libgme, to do that. And I found out ZXTune uses the same library too!

The library also has a simple "sample player" which uses SDL for output and hence is not affected by the "OSS problem".

You can get libgme from here.

That probably explains why nobody bothers to patch SPC-PLAYER, but that's okay. At least now I know how to use libao for my future projects

Posted on 2 Sep 2020, 02:05 - Categories: Linux
No comments - Edit - Delete

New forum for Fatdog

Fatdog has, for years, since its inception, always been piggybacking on Puppy Linux forum. Firstly because of its obvious roots; also because we simply didn't have enough man power to run and police an independent forum ourselves.

As the previous blog entry indicates, however, John de Murga, the owner of the Puppy Linux forum, sadly passed away, and the original Puppy Linux forum went down (for a time).

Behind the scenes people are frantically working to bring it up, but there are also efforts to setup a replacement forums, including one by rockedge.

By now, both efforts have been fruitful: the old forum has been resurrected and the rockedge forum has flourished with old and new members (re-)joining it.

The stewards of Puppy Linux has decided that the old forum will continue in read-only mode as archives, while rockedge forum will take over as the new Puppy Linux forum.

Rockedge has graciously offered a section of the forum specifically for Fatdog, for which we are very grateful.

After some internal discussions, we have decided to take the offer and continue the tradition of piggybacking on Puppy Linux forum. All of Fatdog team members have now re-joined there as well.

For your reference:

The new forum address: (Fatdog posts will be in the Fatdog section)

The old (archived) forum (in case you need to review/check old postings for older version of Fatdogs): (Fatdog posts are in the Puppy Projects section)

We'll see you there in the new forum!

Posted on 19 Aug 2020, 14:31 - Categories: Fatdog64 Linux PuppyLinux
2 Comments - Edit - Delete

Pages: [1] [2] [3] [4] [5] [6] ...