Creating a Hybrid CD-ROM with Toast 7

Geeky notes in progress to myself on a CD-ROM project: how to create a CD that will work on the Mac and on the PC, using Roxio Toast 7 and a small flotilla of support utilities. This is the first time I’ve done this in—geez—12 years, so I had to research the current process.

I don’t want to have to look this up again, so I’m writing it down. VERY GEEKY. You’ve been warned.

These notes are still a little rough, but should get you in the ballpark of what you need to do

Make sure you read the comments at the end too; there are some helpful notes that other users have added (especially regarding the tricky hiding of files).

Update for Toast 8: I’m told by a reader that the newer version of Toast, version 8, actually implements a lot of these features more intuitively now. I have not personally confirmed this though.

Authoring Options

The project: A Flash Projector that loads SWF movies from a subdirectory named _data. The projector needs to automatically run on the PC, and open a folder on the Mac with the projector readily clickable. Also, want to make it very obvious what to click on by hiding files that are not user-friendly.

I last used Toast in 1993 to make hybrid CD-ROMs. These are CD-ROMs that have both the nice Mac icons and PC files. The Mac doesn’t see the PC files, and the PC doesn’t see the Mac files. If there are shared files (for example, giant video files), they can be made visible to both Mac and PC sides.

  • MacImage is a PC solution that does the job, but doesn’t allow you to create a nice Macintosh partition with custom backgrounds. Looks like a good solution for sharing data with basic functionality, but it won’t create a CD that holds up to the expectations of discerning Macintosh users.

  • Adaptec Toast 7 Titanium ($99, Macintosh) still has a custom hybrid mode that allows you to create decent hybrid CDs. And a lot of other “home” oriented uses like “backing up your DVDs” and other such nonsense. Despite that, I bought it after MacImage didn’t end up doing what I needed. It seems to work, though the UI dialogs are a little buggy. This used to be very solid German software when it was just from Astarte. What happened?

Hardware / Software Kit

Here’s what I ended up using…

  • Powerbook 12″ with a Matshita CD-RW CW-8122 combo DVD/CDRW drive.
  • Mac OS X 10.4.3
  • Roxio Toast 7 Titanium (version 7.01)
  • AutoOpen 1.0 from Nibfiles.com No longer available!
  • Apple Disk Utility 10.5.3 (198.5)
  • XCode developer kit utility SetFile to set invisibility bit
  • Photoshop w/ IconBuilder XP from iconfactory.com (Windows Version) to create .ico file
  • Text Editor on PC to create autorun.inf file
  • Blank CD-RW disk for testing (didn’t want to waste lots of CD blanks)

Prepping the PC Side

When someone inserts the CD into a Windows PC, it should automatically run a file (assuming AutoRun is enabled and functioning). This is accomplished with the AUTORUN.INF file. It must be prepared on the PC side, because PC-ANSI line endings must be used otherwise AUTORUN will fail. In other words, don’t use the Mac to create the following file, and don’t edit it on the Mac either. Here’s my AUTORUN.INF file:
[autorun]
label=E3Expo Prospectus
icon=_dataE3Video.ico
open=E3ExpoProspectus.EXE
Notes:
  • label is the name of the CD as it will appear in My Computer. This is different from the CD-ROM Volume Name. It may contain spaces and be over 16 characters (unlike the CD-ROM Volume Name). This may be a feature only available on Windows XP.

  • icon is the pathname to an icon to use for the CD-ROM, as it appears in My Computer. Here it’s pointing to a directory called _data. The E3Video.ico file contains Icon resources created with an Icon Editor. In my case, the program I used was The IconFactory’s IconBuilder XP.

  • open is the program to run. The pathname may not have any spaces in it. You can also select an icon to show, if it’s embedded in the EXE, if you’re not using the icon entry by appending a comma followed by a number. To do this you would have to build the icon into the EXE resource, which requires other development tools on the PC to do.

You’ll note that there’s three files listed: The _data folder, the AUTORUN.INF file, and the projector itself E3ExpoProspectus.EXE. The average person may not know which file to click on to run it, should AutoRun fail to work on their computer. Fortunately, we can hide all the files except for the projector using the Toast 7 ISO Layout Tools.

Prepping the Mac Side, Part I

We’re going to make a separate disk image to contain all our files for the Mac side. This will allow us to set it up just right:
  • We’ll have a cool Custom Background Picture for the Folder!
  • There will just be ONE icon, the movie projector, to click on!
  • The Folder with the projector will automatically open when the CD is inserted.
  1. Launch Disk Utility (it’s in your Applications/Utilities folder). Create a new disk image that’s big enough to hold all the files you want. I made a 40MB disk image, with R/W access, and named it as I want my CD to be named when it’s inserted. Save the disk image (it has a .dmg suffix) somewhere. Use Disk Utilty to mount the disk image. An icon will appear on your desk representing the new disk image. This is a virtual hard drive. Cool! For the sake of example, the Disk Image shall be named E3Expo Prospectus.

  2. Copy all your Mac files, including files you plan to SHARE on the PC side, into the new disk image. Arrange them how you want. Warning. In my limited experience, deleting and re-adding files seems to mess up some file references after I burn (background images not showing up, for example). It might be something else, but thought I’d mention it. Renaming files is OK, though.

  3. To apply the background folder image, go to the Finder’s View menu and choose Show View Options. Click This Window Only at the top, then choose Picture at the bottom. Navigate to an image that’s on the new disk image you created. If it’s not there, move it there. For my example, the background file (I’m using a PNG file) needs to be on the volume named E3Expo Prospectus, because that’s going to be converted into my CD of the same name.

  4. Adjust the size of the window to match the background, and position icons artistically. If there are files you’re planning on hiding later, just stuff them somewhere away from where the pretty layout is happening. You may want to use the Finder to hide the toolbar (the selector on the left of the window) and change to icon view. Both these options are in the Finder’s View menu.

  5. Close your folder window and open it again. This will save the layout.

We’re eventually going to hide all the files we don’t want users to see, but before we do that we have to set up Toast 7 to access files shared between the Mac and PC side. That’s because Toast can’t see hidden files, so to add them to the PC side they need to be left visible. For reference, here’s the files in the _data folder, to be shared between both the Mac and PC sides of the disk, as it appears in my mounted disk image on the Mac:

/Volumes/E3Expo Prospectus/
    _data/
        folderbg.png
        video.swf
        loop.swf
        E3Video.ico
    E3Expo Prospectus
The only file I want showing is E3Expo Prospectus, the application(not the volume name). So, I plan to hide the _data folder. Since I also need to share this folder on the PC, I need to wait until after I’ve added it to the ISO builder in Toast. Make sense? No? Well, just take my word for it.

Toast Prep, Part I — Build PC ISO Side of Disk

The Custom Hybrid mode is available when you show legacy formats and settings in Toast 7’s preferences. While you’re there, also check Show hidden files in content areas.
  1. Make a new CD and choose Custom Hybrid as the type. You’ll see that you can choose a Mac and an ISO part of the CD. We’re going to set up the ISO side first. This is what the PC sees.

  2. Click on the Select ISO button and you’ll see a Layout box. Add all your PC files here. For SHARED files, add them from the Mac disk image you’ve been working on. Toast will figure out that these are shared files and will do its magic behind the scenes. Note that there is some kind of bug with adding folders…if you add a folder first, the listing gets messed up. So add a regular file first, then the folder.

  3. Name the CD to something other than “My Disc” It must be less than 16 characters to conform to Windows standards (“Joliet”). Note that the label entry in the autorun.inf file will be displayed in place of the actual CD Volume name on newer computers; older computers will see the old name.

  4. After you’re done adding everything, we can hide the files. Select the Icon (not the name) and type COMMAND-I (Info). You can then check the hidden option. Alternatively you can double-click the Icon to get this dialog. It doesn’t seem to be documented. You can even hide the AUTORUN.INF file and AutoRun will still work, at least in my limited testing.

  5. I left the Layout and Settings dialogs alone. The Defaults seem to work fine.

Prepping the Mac Side, Part II

Now that we’ve added our shared _data folder to the ISO side, we can go ahead and hide the files we don’t want to be seen by the Mac user.

  1. You need to make sure you have XCode, the development environment, installed on your Mac. It’s included with every MacOS X CD, and it’s also downloadable. It’s HUGE, so you might look around for another utility that sets the hidden bit on files. I had XCode installed already, so I just used that and didn’t both to look elsewhere.

  2. Open up Terminal (in Applications/Utilities). Type the following without pressing RETURN at the end. Also leave a space after the “V”…

    /Developer/Tools/SetFile -a V
    
  3. Now, open up the disk volume you’ve been playing with the custom background and icon positions, that you ran AutoOpen on before. Find the name of a file you want to hide (it can also be a folder). Drag and Drop it on the Terminal window. The rest of the command line will be be filled in, and you’ll see something like this (here I dragged the _data folder):
    /Developer/Tools/SetFile -a V /Volumes/E3Expo Prospectus/_data/
    
  4. Go ahead and press RETURN now. This will set the INVISIBLE BIT on the file. Do this with the other files you want to hide. If you need to undo the invisible bit, replace the upper-case V with a lower-case v in the command line (use the up/down arrow keys in Terminal to review and edit history).

  5. You’ll probably notice that the files don’t seem to be disappearing right away. Don’t worry about that…it takes MacOS X a while to catch up. We’ll be forcing it to do that in the next few steps.

  6. When everything is done, EJECT the disk volume, then REMOUNT it. You may do this through Disk Utility, which seems more robust than double-clicking the .DMG files directly. My system becomes unstable otherwise.

  7. The files you set to be invisible should now be invisible. You’ll probably want to resize the window and rearrange the remaining icons to make everything pretty.

  8. Move the newly-prettified window to the upper-left corner of your screen. This ensure that the folder will be viewable on machines that don’t have the high resolution that yours has. Close the window, then open it again.

  9. Now use AutoOpen to set the disk volume to Auto Open. Consult the manual for specifics. This will set the disk image to open automatically when inserted, once it’s burned to a CD. If it actually works, send your $10.00 to the author of AutoOpen! [12-15-2006] Apparently AutoOpen has disappeared, but this article has some information about Auto-opening folders by using the following command in Terminal (I’ve modified it to reflect the name I’m using for the Mac disk image): sudo bless -folder "/Volumes/E3Expo Prospectus/" -openfolder "/Volumes/E3Expo Prospectus/" Note: I haven’t tested this yet, but am just writing it here for next time I need to burn a CD.

Toast Prep, Part II — Prepping the Mac Side

Having finished making the mounted disk image exactly the way we want, we’re finally we’re ready to set up the Mac side of the CD. It’s easy: Just click Select Mac… on the Custom Hybrid window in Toast 7.

  1. Select the disk volume you’ve been doing everything to.

  2. Click OK

  3. You’re done!

Burning the CD

I used a CD-RW (rewriteable CD) to test my CDs on both PC and Mac. Keep in mind that CD-RW discs aren’t as fast as regular CDs, so if your application is data-rate sensitive you’ll want to check it on a regular CD-R to get the true sense of how it works. Anyway, click the big red button in the lower right of the screen to burn the CD. It should take just a few minutes.

Testing the Mac Side

Now the exciting part…making sure the damn thing works.
  1. If you have another Macintosh, test on that. If you don’t, make sure your unmount the disk image you selected in Toast first! Otherwise you’ll have two copies of the same volume, and when your CD runs it will grab files from the disk image. You want it to grab files from the CD itself.

  2. Check that the folder is opening automatically when you insert the CD.

  3. Check that the background image is showing up correctly.

  4. While you’re at it, check file names too. Make sure everything’s pretty the way you like it.

Testing the PC Side

  1. Find a different CD that you know works with AutoPlay, and make sure AutoPlay is working. Some PCs do not have functioning AutoPlay. The owner may have turned it off, or AutoPlay has become corrupted by a third-party piece of software. Troubleshooting AutoPlay on a PC is not my idea of fun, so I’ll skip the explanation. If it doesn’t work, find a PC that does have it working. Most CD-based installers for the PC use an Autorun.INF file, so chances are you have a CD you can used to test.

  2. Once you’ve found a PC with working AutoPlay, insert your Hybrid CD in and see if it works. If it doesn’t, double-check the AUTORUN.INF file. You might have screwed up a pathname, left out the [autorun] line at the top of the file, or you didn’t listen and used a Macintosh to create the file with the WRONG line endings. You might have also used a filename with a SPACE in it for the open line. I have done all these things, and they are all irritating things to have happen to you.

  3. If AutoRun does seem to work, then you’re good! Look in My Computer and see if the name of the CD is showing up as how you’ve defined label in autorun.aif. This may be a Windows XP feature…not sure if it’s available on 98, ME, or 2000 (see the end of this doc for my testing notes). Also check that the Icon (the .ICO file specified in the icon line of AutoRun.INF) is showing up.

  4. Double Click the CD-ROM Icon. This should relaunch the application instead of opening a browser window.

  5. Quit the application, and right-click the CD-ROM Icon. Choose EXPLORE from the menu that pops up. You can then view the contents of the CD and make sure everything that’s hidden is supposed to be hidden. If you’ve done your job, the only visible clickable file is the Projector executable. There’s almost no way to mess that up.

  6. Have a beer. Good job.

Wrapping Up

<

p>If everything looks good, you can master the CD. The CD mastering company just called me and told me they need a physical CDR that has been tested and checked on the target platforms. That is, the CDR I send needs to be tested. Perfect. They duplicate it bit-by-bit. They can accept an image (ISO), but it costs $200 to turn around a check disc.

The format of the CDR: Mac side is HFS (Mac OS Standard, not Extended) , and PC Side is ISO-9660 Mode 1 (Mode 2 is called CD-ROM XA in Toast 7, Mode 1 is just called CD-ROM).

A reader points out that the Mac side of the disc will truncate long filenames to the much-hated 31-character filename limit.