CDTV 3FFF Problem – Diagnosis & Repair

Diagnosis and Repair of a Commodore CDTV unit which has a strange ‘3FFF’ problem.

In the first part, below, I diagnose.  In the next part (coming soon, will be added here) I repair.

Recover Data From Unfinalized DVD RW


Sometimes you’ll end up having to deal with a DVD which has video recorded on it but the author neglected to finalize the disc. This can be a bit troublesome, because until the disc is finalized it doesn’t contain the necessary data to make it compatible with the DVD standard. Most consumer DVD players and PC based DVD drives rely upon this information to make sense of the data content on the DVD, so if it isn’t finalized most systems won’t open the disc.  Either it will open a blank explorer window, or it won’t mount this disc at all. What to do?

Well, thankfully, it is possible to recover from this situation. There are some commercial applications out there which will do it (get your wallet out) or you can make use of open source software instead. I am going to describe the process for some free open source software on Linux.


First of all, you need some free open source software called DVD+RW-Tools.  This is a collection of programs for working with optical video disc media.  Most modern linux distributions come with the tools installed as standard.

Reading the disc

Once you have the tools installed, you can use them to extract useful information about the data content on your unfinished disc.  To do this, open a terminal and type:

dvd+rw-mediainfo /dev/dvd

You will get some output from the command.  Here is a sample of output from an unfinalised DVD+RW which has one track on it:

brian@kubuntu:~$ dvd+rw-mediainfo /dev/dvd
INQUIRY:                [HL-DT-ST][BD-RE  BH16NS40 ][1.03]
Mounted Media:         13h, DVD-RW Restricted Overwrite
Media ID:              80SONY-W0
Current Write Speed:   2.0x1385=2770KB/s
Write Speed #0:        2.0x1385=2770KB/s
Speed Descriptor#0:    00/716191 R@6.0x1385=8310KB/s W@2.0x1385=2770KB/s
Media Book Type:       00h, DVD-ROM book [revision 0]
Legacy lead-out at:    716800*2KB=1468006400
Media Book Type:       32h, DVD-RW book [revision 2]
Last border-out at:    2045*2KB=4188160
Disc status:           appendable
Number of Sessions:    1
State of Last Session: incomplete
"Next" Track:          1
Number of Tracks:      1
no media:              716192*2048=1466761216
00h(800):              716192*2048=1466761216
10h(10):               716192*2048=1466761216
15h(10):               716192*2048=1466761216
Track State:           incomplete incremental
Track Start Address:   0*2KB
Next Writable Address: 132208*2KB
Free Blocks:           583984*2KB
Fixed Packet Size:     16*2KB
Track Size:            716192*2KB
READ CAPACITY:          0*2048=0

Note that it is possible to have many video clips contained within a single track or you can have video clips spread across multiple tracks; it depends on how the video information was written by the original equipment.  You may also see multiple disc ‘sessions’.  In the sample case above, we have a single track within a single session and I happen to know that there are multiple video clips contained in it.

I will show you how to extract the video for the above single track, but the method is exactly repeatable for any number of tracks and any number of sessions.

The dd Command

‘dd’ is a command for copying data from some media.  To use it, you give it a block size, a start address, an end address, an input file and an output file.  To see how this applies to the above information, consider the following command:

dd bs=2048 skip=0 count=716192 if=/dev/dvd of=/$HOME/track1.vob

This will extract the single track from the disc and place it in your home.  To explain, let’s go through the parameters one at a time:


This is block size.  To get the correct block size, take a look at the information from DVD+RW-mediainfo.  You will see that the data information (e.g. Start Address) is terminated with an asterisk and a number:

Track Start Address:   0*2KB

In this case we are given 2KB.  Since there are 1024 bytes in a kilobyte, the number to give for bs is 2048.


This is the number of bytes to skip in order to reach the start address of the track.  In the above example the start address is 0, so there are 0 bytes to skip.  But in examples with multiple tracks and/or sessions, you will have non-zero start addresses.  Just enter the start address for the track you are interested in as the parameter for skip.


This is the number of bytes to extract, from the start address.  To obtain this information, simply use the track size data:

Track Size:            716192*2KB


This is the input file.  You need to supply the path to your DVD device.  In most cases it will be /dev/dvd


This is the location where the output file will be written.  $HOME works fine.

Finished – Play It!

Once you have extracted your track, you can play it in any standard media player.  You could also write it to a new disc, remembering to finalise it this time!!!

Good luck.

rarcrack review


I stumbled across a little program called rarcrack yesterday, which provides brute-force cracking of password protected archives.  I decided to give it a try and make some general observations about it.

An example

To set up an example, I created a .rar with a 5 character password.  The password consists of upper-case letters, lower-case letters, and numerals.  rarcrack does not know ahead of time how many characters the password is, so it has to try all possible combinations.  I set the cracker going, and left it for a while. The next day, over 24-hours later, it was still going and had not cracked the password.  Here’s a sample of the program output this Morning:

Probing: '6tgvK' [1296 pwds/sec]
Probing: '6thwV' [1305 pwds/sec]
Probing: '6tiyi' [1309 pwds/sec]
Probing: '6tjzn' [1303 pwds/sec]
Probing: '6tkAt' [1304 pwds/sec]
Probing: '6tlBu' [1302 pwds/sec]

 So it seems that it has started on 5 character passwords, having completed 4 character combinations.  But it is still working through the 5 character combinations and I can see that it hasn’t got to mine yet because it does numerals first and my password started with a letter.

Some Calculations

Okay, so given the above information, how long can we expect rarcrack to take to crack a 5 character password? The speed is ~1300 attempts per second.  That seems really low to me, but I assume it has something to do with the overhead associated with accessing the .rar file.  Otherwise I would expect a PC as powerful as mine to make a lot more attempts per second than that.

Let’s do some calculations.

How many characters?

We have 26 lower-case letters, + 26 upper-case letters, + 10 numerals =

62 possible characters.

How many combinations?

Easy.  62^5 = 916,132,832.

Best case scenario

The best case scenario is that rarcrack finds the password on its very first attempt at a 5 character word.  That scenario is 62^4 + 1 attempts = 14,776,337 attempts.

14,776,337 ÷ 1300 ÷ 3600 = 3.2 hours.

Worst case scenario

The worst case scenario is that rarcrack finds the password on its very last attempt at a 5 character word.  That scenario is 62^5 = 916,132,832 attempts.

916,132,832 ÷ 1300 ÷ 3600 = 195.7 hours, or 8.1 days!!!

It gets a lot worse very quickly from here!

Okay, so what happens if we add more characters? The situation gets a lot worse very quickly.  Here’s some worst case scenarios for some more characters:

[table id=3 /]

You can see that even an 8 character password takes over 5,000 years to crack.  Wowsers.

A little harsh?

Okay, maybe we’re being hard on rarcrack.  What if we were foolish, and we set a password consisting of only lower-case letters? The worst case for an 8 character password would then be:

26^8 ÷ 1300 ÷ 3600 = 44,621 hours.  Or 5.2 years.

Still a very, very long time.


rarcrack is an interesting program, but at the current speeds I can achieve with it the program is useless except for passwords consisting of 5 or less characters.


Adding USB devices in a Virtual Machine

Adding USB Devices in a Windows Virtual Machine with VirtualBox

One of the most confusing things for me when I first experimented with VirtualBox was the question of how to add USB devices.  I run Linux (Ubuntu) as my main OS now, but sometimes I need to dig around in Windows (e.g. work related stuff) so for those cases I run it in a virtual machine.  I recently needed to add a data acquisition device for use in the virtual machine on Windows, so I thought I’d document the procedure here.


You need to have VirtualBox installed on your machine, and a Windows virtual machine set up.  I am going to run Windows XP in a virtual machine on Ubuntu in this tutorial.
You also need Virtual Guest Additions installed in the virtual machine to enable the USB support, amongst other things.  If you’re confused about this aspect, there is plenty of information available if you ‘google’ it.

Sorting out the Group Permissions

The only reason that USB support is confusing at all is that you need to add your user to the VirtualBox group before any USB devices will show up for use.  VirtualBox doesn’t offer any other useful information; it just complains that there are no available devices.  The problem is that VirtualBox is not allowed to share your USB devices, so the next steps will fix this.

First you need gnome-system-tools.  Run the following command in a terminal to install it:

sudo apt-get install gnome-system-tools

Now go to the dashboard and type ‘user’.  You should see an icon for Users & Groups appear.  Select it, and the following window will appear:

Users Settings_002Select ‘Manage Groups’.  The following window will appear:

GroupsSettingsScroll down to ‘vboxusers’ and then select ‘Properties’.  The following window will appear:

Group'vboxusers'PropertiesMake sure your user is ‘ticked’.  It probably won’t be by default.  Then select ‘OK’.

WinXP-Dev-SettingsNow USB should work.  But you have to log out and back in again first.  You should do that now.  When you log back in, open Virtual Box and select the settings for your virtual machine.  Select the USB settings, and make sure USB is enabled.  Now you just need to add the USB device you want to use in your machine.  Make sure it’s connected to your computer, and then select the ‘add’ button.  I’m going to add my National Instruments DAQ device:

selectniNow, when you start your virtual machine, Windows should detect new hardware and install it for you:

installingnidaqFinally, when it’s done, you can test out your hardware.  I am using a DAQ device so I started the software for it and captured an analog signal 🙂



That’s it, you’re done.  Any time you need to add more USB devices, you can add them to your virtual machine in the same way.

Good Luck.


Amiga 500 eaten alive!

I’m having some fun messing around with a few of my old retro computers at the moment and, inspired by EEV Blog’s recent teardown and successful boot of a 25 year old Amiga 500 I decided to get my old girl down from the attic and give her a go.

Unfortunately my attempts were rather less successful! I was met with the dreaded blinking power LED and a continuous cycle of repeated resets.  Drat.  What could possibly have gone wrong after a mere quarter of a century?

A quick look under the cover revealed the very obvious culprit:

Amiga A500+ Battery Leakage
More Amiga A500+ Battery Leakage







Also, rather bizarrely, the battery fuelled corrosion seems to have spread all the way over to poor old FAT AGNUS!

FAT AGNUS battery leakage










It seems like this may be terminal for my trusty old Amiga 🙁 but I will break out the old toothbrush over the weekend and see if I can clean her up a bit.  With a bit of luck a good clean will see her up and running again.  Wish me luck!