What to do if things go wrong (part 2)
Last issue I looked at some common VirtualAcorn problems that have been experienced by customers, this time I want to take a look at some of the most obscure technical support problems. These have all been grade A head scratchers and in some cases have taken quite a bit of experimentation in order to find the cure. Often the cure seems to have little or no relation to the problem, which makes finding the answer even more difficult. Still lets have a look at a couple of the most difficult tech support problems we have had to deal with in the last few months.
Floppy driver problems
We have had one particularly awkward problem with the VirtualAcorn floppy driver recently. After installing the driver one customer's machine wouldn't reboot. Windows would start to load and get as far as the flash screen, then just sit there for ever. Booting into safe mode and removing our driver solved the problem, so what could be wrong?
I was quite convinced the fault wasn't actually our driver, otherwise we would have seen this fault before. Thousands of PCs are running the VirtualAcorn floppy driver and any inherent fault should have shown up by now. The floppy drive worked from Windows without any problem and was a standard IDE part connected to the computers motherboard. The VirtualAcorn driver would install without any problems and would come up with the normal WinXP logo compatibility warning. Having installed the driver it would show up in the Windows device manager, and VirtualAcorn would read floppy discs fine, until the PC was shut down. This one had me completely stumped, in the end I had to conclude that there was a driver/hardware clash somewhere but was unable to find it.
A few days later the customer e-mailed back to say they had found the fault, it was an iPod! If the iPod was connected to the PC when the VirtualAcorn floppy driver was installed, then the fault happened. If the iPod wasn't connected when the driver was installed then everything worked fine. The PC would reboot every time, VirtualAcorn could read discs, and the iPod worked fine. Quite what the connection is I don't know, I can only assume that with the iPod connected some extra drivers are loaded by Windows and these conflict with our driver. Without the iPod being connected there was no clash and our driver would install. I had no hope of solving this one myself, not least because I didn't even know the customer had an iPod.
This does raise one important point with tech support; if you, as a user, have a problem then you need to tell a tech support person about every bit of hardware you have connected to your computer, even the best made piece of kit could hold the key to solving the problem.
Failed to create primary surface
This is a nasty little error that crashes VirtualAcorn with no warning and usually only happens on laptops. Let me explain the symptoms. The user has VirtualAcorn running full screen and simply closes the laptop. At this point the machine will go into hibernate mode, so that when it's re-opened everything will re-start from where it was, so you shut down with RISC OS full screen, and when you re-open the machine RISC OS comes back full screen. Well that's the theory, what happened on one customer's machine was that after hibernating the computer would restart, then an error message "Failed to create primary surface" would come from VirtualAcorn, which would then exit without any warning.
This is a nasty little problem, but unlike the first example with the iPod I was able to get to the to the bottom of it quite quickly. The Primary Surface is the memory VirtualAcorn uses to render the RISC OS screen display. Something was interfering and preventing VirtualAcorn from grabbing the memory it needed. Since VirtualAcorn uses DirectX for this purpose it was a reasonable conclusion that another application was also trying to grab memory using DirectX at the same time.
The customer didn't have any games running on the laptop, so it couldn't be that. However they did have one other full screen application running as well, a screen saver. Most Windows screen savers also use DirectX. I asked the customer to disable the Windows screen saver and hey presto the problem was solved.
This is a real oddity that I never managed to get to the bottom of. One customer had a problem that they would "import" a set of directories containing files into VirtualAcorn. Once they had been imported VirtualAcorn could see the directories and read the files inside them. However if VirtualAcorn was quit and then re-loaded the directories would suddenly become unreadable. Windows could still see the directories and open them without any problem. I went through a number of test with the customer, making files and directories from inside VirtualAcorn, and all was fine, apart from the "imported" directories that continued to cause problems. In the end we both gave up as the problem just seemed to go away on its own!
Having just re-read the above section in my final editing it has just occurred to me that perhaps the "imported" directories had some weird file flags set under Windows which caused a problem, but that's just a guess.
The tech support queries above are all rather obscure and in most cases have only happened to one customer. However that doesn't mean that at some future point the problem might not happen again. Remember if you do need to contact VirtualAcorn then make sure you have your CD serial number handy, as without this it may not be possible to answer your query.