Sunday, September 16, 2018

3DO FZ-10 USB Host Controller Review

What is a 3DO FZ-10 USB Host Controller?


If you know what an "Everdrive" is, that's basically what this works out to being for the 3DO.  This type of device is most commonly referred to as an Optical Drive Emulator (ODE).  It installs into a 3DO game console in place of its CD drive which allows you to load games from a USB device.  The main advantages to this are that there are no moving parts to wear out, and more importantly you can have the entire library of 3DO games loaded onto the console at once.


Overview

Back in June of 2018, I wrote about a 3DO FZ-10 that I "rescued".  It had a broken latch, and literal dirt and dead bugs in its innards.  The CD drive spindle was seized, and the power and access lenses were missing.

My main motivation in purchasing an "as-is" 3DO FZ-10 was to install the 3DO FZ-10 USB Host Controller by MNEMO (http://3do-renovation.ru/USB_Host_for_FZ10.htm).

It was quite a fun journey, at times feeling like some kind of cloak-and-dagger mission fraught with uncertainty and intrigue.  Most of my adventures in modernized retro gaming have been mostly straightforward affairs or at least had shallow easy learning curves with a thriving responsive community ready to weigh in when things get troublesome.  This one device, however is shrouded in more obscurity than usual.



Ordering

Compared to buying something on Amazon, buying handmade "botique" retro gaming components like this can be astonishingly complicated.  Instead of browsing for something, deciding to buy it, popping it in your cart and checking out, these things are usually in short supply and made by people with a passion for the technology, but no aptitude for the business/e-commerce end of things.  I've pre-paid months and even years in advance, used informal email messages, forum posts and private messages on Facebook to place orders, brokered purchases through private and professional proxies in foreign countries and paid in at least four different currencies to what feels like the four corners of the earth - all of which is pretty normal.  This one, however took the cake.  For a while it felt like being in one of those cold war movies I watched as a kid, trying to get the mission-critical MacGuffin from the aloof Russian contact, including it's own cliffhanger where the protagonist loses his edge of control and has to give the Russian all of the diamonds and just hope he doesn't decide to disappear with them then the audience hangs in suspense wondering whether the hero has been left high and dry.  Well, okay, it wasn't quite that dramatic, but I did nearly gasp with relief when the thing finally showed up in my mailbox.

As I mentioned, this adventure started in June when I cleaned, repaired and modded an FZ-10.  As soon as I was done testing things and sure that the console was in good working order I went to the "how to buy" section of MNEMO's website (http://3do-renovation.ru/How_to_buy.htm).  The FZ-10 model was listed as "in-stock" and the "last update" time was less than a month old, so it seemed reasonable to expect they were actually available.

To place an order, you are asked to complete a really simple web form then click "Make Order".  Once you do that your order disappears into the ether.  No order number is provided, no confirmation email is sent to you.  There's no email address anywhere on the website, no way to reach out and ask about it.  You just wait.

After a couple of weeks with no response, I thought I might just need to re-submit the order, but there was a message on the website (which has since been removed) that said "I am swamped with orders, don't send your order a second time." 

I tried to be clever and use the Way Back Machine to see if a previous version of the website included an email address.  Sure enough I found a version that did.  I sent an email to "dr.mnemo@gmail.com" but never received a reply. (Although after installing the unit and sending a question about its operation, I did get a reply within a day, so YMMV).

On August 24th, A little over two months from when I first submitted my order, I received an email with the subject "3DO FZ-10":
hi
Sorry for delay.
USB FZ10 was out of stock.
Now available, and I can accept your order.
Send me payment 165 usd without fee
to account

Here is direct link https://www.paypal.com/myaccount/transfer/gift
notes not nessesary
I know your Paypal account and all data of your order.
The PayPal address in the request didn't seem to have anything to do with MNEMO at all, and I had no way to verify who I was communicating with.  (I have not included the email address in this article because MNEMO doesn't publish it anywhere and I'm trying to be respectful of his privacy).  It's fairly common practice to side-step PayPal fees by sending money as a "gift", but the downside of that is that you don't have any purchase protection whatsoever.  If the transaction comes across as a purchase of goods or services, there's a fee, but if something goes wrong, the recipient doesn't get to just walk off with your money. 

Trust is a beautiful thing, but it seemed foolish to go forward like that.  While the opportunity to purchase one of these adapters is tenuous at best and the last thing I wanted to do was to offend the one guy on the planet selling them, that was a little more risk than I was up for.

It had been so long since my original order was placed that my old PayPal email address was no longer valid.  I replied to the email I received and gave my new PayPal email address and explained that I could not send the money as a gift, but would be happy to cover the fees myself.  I got a response within a couple of hours:
At next week I will sent you Paypal Invoice
I forwarded the email from my old account to my current account and then replied - my thinking was that this would move the conversation away from my old account and eliminate any confusion.  That response was on a Friday.  Monday rolled around and I didn't hear anything.  On Wednesday, I sent an email response asking when I should expect the invoice.  I waited until Thursday for a reply, and when I didn't get one, I sent the message from my old account and received a response within a couple of hours.  The gist of the response was that the Invoice would be sent on 9/1.

True to his word the invoice was sent on 9/1, though now it included not only the PayPal fees, but an extra charge for shipping as well.  Instead of $165 it was $187.  Fair enough.  I made it formal, so he made it formal.

Right after I paid the invoice I sent an email to the same address asking to be notified when the adapter shipped and for an electronic copy of the installation instructions so I could get started.  I never heard another word.  The instructions are not published online as far as I was able to find.

The adapter arrived in my mailbox on 9/13, which is only about 8 business days from when I placed my order.


Installation

The adapter arrived with a wire harness for the IDE interface, a wire harness for power, an extra-thick ground wire, PCB spacers, a black-and-white instruction booklet and an un-sharpened pencil (which the instructions referred to as a "wand", lol).

All in all, it's a pretty great kit - the wires were already pre-cut to length.  Despite a little broken English, the installation instructions were clear enough.  The only criticism I have is that if you're going to go to the trouble of pre-cutting the wires, it might be helpful to provide some advice on how to orient them during installation.  There's a single picture toward the end of the instructions where you can see some of the data wires attached to give you an idea of the expected orientation.

To complete the installation, I used:
  • Hot Air rework station
  • Hair Dryer
  • Tweezers
  • Aluminum Foil
  • Kapton Tape
  • Liquid No-clean flux
  • Solder (I really prefer 62/36/2 silver-bearing)
  • De-soldering braid
  • Fiberglass pen
  • Automatic Wire Strippers
  • Digital Multi-Meter
Firstly you should read the instructions all the way through.  Not only to make sure you understand the procedure, but because some of the stuff is oddly out of order.

Disassembly is mostly self-explanatory - just unscrew and pull apart.  The one exception is the CD Drive which is attached by two plastic tension pegs.  The instructions illustrate inserting the pencil (a.k.a. "green wand") into the holes underneath the pegs and pushing up.  I recommend holding your hand over the top as you push the pegs out as they tend to pop out rather forcefully and can fly across the room.

The most difficult part is getting the drive controller IC off of the motherboard. 

To prep for the hot-air gun I used sheets of foil and Kapton tape to mask off the IC from the other components.  Basically I left the IC exposed, but the rest of the motherboard was covered in a foil shield, held flush to the motherboard by the tape to make sure that hot air did not pass under the foil to the rest of the board. This is especially important as there's a plastic socket just below the IC that will melt under the hot-air gun if not properly protected.

The next step was to take the hair dryer to the underside of the motherboard.  I don't have a dedicated warming oven.  The idea here is that you want to pre-heat the board to lower the temperature differential when you start applying the hot air.  It's supposed to reduce the likelihood of micro-fractures of the PCB from rapid heating and cooling.  I don't know if it actually makes a difference but it's an easy step to take.

Next, I covered all of the IC pins in no-clean flux, and applied some fresh solder to all of the pads.  Old solder has a tendency to resist being re-heated, so freshening it a bit helps it to conduct heat a little more readily.

From there it was a matter of patience, applying hot-air in a back-and-forth motion as uniformly as possible to the IC until the solder on all of the legs was hot enough to let go.  When it was ready I simply nudged it with a pair of tweezers and it slid right off.

With the IC off, I cleaned all of the pads with a little more flux and a de-soldering braid.

After reading through the instructions about 3 more times to get a feel for where everything would  go, I stripped separated and tinned all of the wires on the provided ribbon connector, then tried to loosely hold them in place with my fingers to get a feel for how it was all supposed to fit.

The ribbon wires are connected in three places - the gray wire goes to the reset switch, and the rest go to the pads of an unpopulated IC below the drive controller, then to drive controller pads.  I started with the gray wire, then the lower IC and then the upper.

A note on the installation diagrams: The instructions helpfully point out alternate connection points for lines that are very close together.  These points are usually little circles used for connecting between the PCB's layers, and they're not meant to be soldered-to.  The board is coated in a lacquer which will prevent solder from sticking to those points.  You'll need something to scrape through the lacquer.  In my case I used a fiberglass pen to gently rub off the coating.  With the coating worn away the pads are considerably brighter and will readily attach to hot solder.

After making sure all of the ribbon connections were soldered securely to the motherboard I used a DMM to test continuity to make sure there weren't any solder bridges between adjacent pins.

The instructions very properly encourage you to test everything BEFORE you fasten the controller board to the 3DO.  If you have any cold solder joints, or anything else is wrong it's a lot easier to check before you put it all back together.    In my case it worked perfectly on the first try.

The instructions tell you to remove the rubber shock absorbers from the CD drive unit, and re-use them along with the spacers to mount the host controller securely where the CD drive used to be but I went a slightly different way.  If you've ever tried to source those little rubber shock-absorbers you'd know just how impossible they are to replace.  Using them to mount the host controller will eventually ruin them because they'll be permanently compressed.  As unlikely as it is that I'll ever re-install the original optical drive, I'm also not going to ruin a perfectly good component.  Instead I had some replacement memory foam ear pads (this kind, if you're curious) laying around which worked perfectly in their place and didn't even require the included spacers.



Usage

Here's where things get obscure. The instructions for installing the unit were about 99% of the way there.  The instructions for using it, however, are missing a few key components. 

What IS Explained

The printed instructions provide a tiny bit of guidance.  
  • To Launch a Normal Game press "A"
  • To Launch an Unencrypted Game press "B" I'm not an expert on the subject, but I believe the 3DO required executables to be encrypted to prevent unlicensed software from being distributed for the system.
  • Use "RS" (right shoulder) to page down through the file list
  • Use "LS" (left shoulder) to page up through the file list
  • To copy the contents of the 3DO's NVRAM to a file on the USB drive press "Right+C"
  • To copy the contents of an NVRAM file on the USB drive to the 3DO's NVRAM press "Left+C"
  • To make the 3DO memory manager accessible, write a blank file to the USB drive.  Basically any file you try to launch with "A" which isn't a valid game disc image will make the 3DO think there's no disc in the drive and give you access to the storage manager.  So if you create a blank text file and name it "Launch Storage Manager", selecting it from the menu and hitting "A" will bring you to the "Insert Disc" prompt, from which you can hit "X" or "Stop" to open the Storage Manager.

What IS NOT Explained

  • Supported File Format For Games.  Games need to be in "ISO" format - that is to say "MODE1/2048".  It does not matter what the files are called - so you can save them to the USB drive without a file extension and get a cleaner look for your loader menu.  See "More on Disc Image Formats" below for more info on my experience.
  • How to Create an NVRAM file. In order to copy the contents of NVRAM to a file, you have to already have an NVRAM file on USB drive, and there's no option to just create a new one.  There IS a tiny tiny breadcrumb on the product page, though.  There's a note on the page: "For quick select of the game Image - extract that file to USB"  What "that file" actually contains is an example directory structure along with some example NVRAM files.  Now you could just copy those files, rename them to whatever you want and use them directly, but with a little trial and error, I figured out any file that's exactly 32k in size can be used.  You can create blank 32k files in Windows using "fsutil", or in Linux using "fallocate".  Examples below.
  • If/How Multi-Disc Games are Supported I reached out to MNEMO about this and his reply was "it works the same as with a CD".  Evidently all of the multi-disc games expect the console may be cycled between disc swaps.  The only one I've tested so far is D.  When the game asks for Disc 2, open and shut the CD lid, and the 3DO will load the USB loader, select and boot Disc 2 and it just works. I believe it writes a temporary file to NVRAM an deletes it upon load.  One of the example NVRAM backups in "that file" is labeled as "D disc 2".  I think if you write the NVRAM to a file when you're between discs you can capture this temporary file.
  • How to Navigate Directories.  This one isn't rocket surgery or anything, but unlike every other similar device I've ever used, there is no "back" button.  To descend a directory, highlight the directory using the D-pad and press "A".  To ascend back to the parent directory, use the D-pad to highlight the ".." at the top of the directory list and press "A".



More on Disc Image Formats

The CDRWin "bin/cue", and Clone CD "ccd/img/sub" formats are NOT supported by this device.  Nor are the more exotic DiscJuggler ".cdi", nor the Nero ".nrg".  If you have ripped your games in bin/cue or ccd/img/sub, you'll need to either re-rip the or convert them.  There are probably a dozen and a half ways to go about this, but I'll go over what I used and can confirm works.

ImgBurn (www.imgburn.com)
This is a free tool that runs on Windows and will rip original 3DO CDs in the correct format without any extra tuning or configuration.  Simply insert the disc, launch ImgBurn, select "Create Image File From Disc", select your drive and click disc-to-file icon.

Converting bin/cue to ISO
I had okay luck with bchunk, but I'm running a mixture of Windows and Linux in my environment and I used the Linux version.  Some files came across as 0bytes for some reason, but I was able to find alternative copies that worked just fine for those.

Converting ccd/img/sub to ISO
To do this conversion, I used Virtual Clonedrive (https://www.elby.ch/en/products/vcd.html).  It's free and made by the same company that invented the format.  I mounted the "ccd" image as a virtual disc, then used ImgBurn to rip it like any other CD.

What do I do with iso/cue?
If you run across any images that come as a .iso and a .cue pair, open the .cue file with a text editor and just confirm that the section with the .iso file notes "MODE1/2048".  If that's the case you can just discard the .cue file and use the .iso file as-is.

If all else fails and you can't lay hands on the original disc, you can always try burning the image to an actual CD-R then re-ripping it with ImgBurn.


Creating New NVRAM files

Just like with the game images, the name of the NVRAM file doesn't matter, so you can leave the extension off of the filename for a cleaner look to the menu.

Windows 7/8/10:
Assuming 
  • USB drive is "G"
  • Backups are in a directory called "NVRAM Backups"
  • You are running "CMD" as an administrator
fsutil file createnew "g:\NVRAM Backups\slot 01" 32768

This will create a file called "slot 01"

Linux:
Assuming


  • Your USB drive is mounted at /run/media/user/USB_DRIVE
  • Backups are in a directory called "NVRAM Backups"
  • You have write-permissions to the drive

fallocate -l 32768 "/run/media/user/USB_DRIVE/NVRAM Backups/slot 01"

This will create a file called "slot 01"