Building my own Sega Genesis Mini

It’s been several years since I posted Building a own custom retro console running RetroPie. That project was a lot of fun at the time, but I haven’t built another custom system since.

I just wanna play Sega Genesis

My original intent was to build something that focused on playing Sega Genesis games. The Genesis remains my favorite childhood console, and my dream was to build an emulation machine that looked like a Sega Genesis externally, but loaded with the entire library of games.

However the Raspberry Pi was still in its infancy back then, and I couldn’t bring myself to cannibalize an actual Genesis for its shell. Instead I settled on building my custom console with a generic case and (Xbox 360) controllers featuring a similar six-button layout. But that build just didn’t hold my interest for very long and I ended up digging out my original Sega Genesis, picking up one of Krikzz’s EverDrive flashcarts, and never looking back.

Fast forward to 2019, and Sega released the Sega Genesis Mini, which I happily picked up. It was my favorite of the official mini consoles, and it earned its spot on my desk at work. Despite the quick availability of hacks to add more games (and systems), I appreciated having such a tight, curated experience, even if I didn’t agree with every game choice.

Home office plans

Now it’s 2022 and that mini has mostly sat unused while I worked from home. As our offices have reopened, I’ve decided to split my time and to finally build myself a proper home office. And while I’ve kept a spot on my desk earmarked for a small “retro hardware setup”, I also have nice large TV and couch just begging for its own game system.

My first thought was to bring the Genesis Mini home, but it’s nice to have a self-contained setup at work for the days I go in. My second thought was to just pick up a Xbox Series S, giving me access to my modern digital library instead.

Then the Genesis Mini 2 was announced, so that became a contender. I looked at the game list, but unfortunately it doesn’t really excite me. However, in the process of watching various YouTubers’ opinions on the system, I stumbled upon some other projects that I’d completely missed before.

Blast 16 and the RetroFlag MEGAPi case

Blast 16 is a Raspberry Pi image designed to help you build your own Genesis mini console. Rather than just another RetroArch and Emulation Station setup, designed to host the full library of every retro console ever, Blast 16 is very Sega-oriented, and only supports the Genesis, Sega CD, 32X, Master System, and Game Gear. More than that, the beautiful, box-art-focused UI can’t handle more than a couple hundred entries without slowing down. So it’s meant to make you curate your experience, and only put on games you really want to play.

On top of that, and the real icing on the cake for me, is it’s easy to pair the Blast 16 software with the RetroFlag MEGAPi Case, which looks just like an actual Model 1 Sega Genesis. Seeing the two together in this video, my original dream was rekindled, and building my own Genesis Mini jumped to the top of my to-do list.

Getting the parts

My first concern was the age of these projects – they’d all come to market years ago, in response to the official Genesis Mini release. And if there’s one problem with these kinds of niche retro products, is that they’re often impossible to get if you didn’t buy them on day one.

Thankfully the Blast 16 website was still up and running, and I was happy to find that the MEGAPi case is still available on Amazon. I put in my order, and it’s quite lovely:

Next I gathered up two 8Bitdo M30 Bluetooth controllers (which I already had). The only thing missing was a Raspberry Pi.

I almost had a heart-attack seeing my (lack of) options. The MEGAPi case supports the Raspberry Pi 2B, 3B, or 3B+, but almost no one carries them anymore. I’d have to shell out $120 just for the low-end 2B, which is three times its original retail price of $40, and doesn’t even have Bluetooth.

Thankfully, past me had me covered. Checking my Amazon order history, I saw I’d picked up a 3B back in 2017 (who knows for what), and sure enough I there it was in my parts bin, still in the box. Bingo!

Building the hardware

Installing the Raspberry Pi into the MEGAPi case was simple and straight-forward – just plug in the two USB plugs, the single plug for the GPIO, and screw the board down:

Finally I flipped on the switch labeled “Smart Shutdown” (more on that later), closed the case and screwed it shut:

Initial software setup

With the hardware done, the next part was setting up a Micro SD card with Blast 16. I used a 16 GB card (no reason to waste anything bigger), and following the excellent instructions on the Blast 16 website, got the card imaged.

After that, I installed the card through the little lift door on the side of the MEGAPi:

After running the device once for the initial setup, and pairing the M30 controllers, it was time to install some games!

Installing games

Doing so was super easy. All you have to do is copy your ROMs (with matching box-art) onto a USB flash drive in a particular folder structure. Then if you boot the system with flash drive plugged in, Blast 16 will automatically install them onto the system. Note: if you want to remove games later, you can do so from within the Blast 16 menus.

I installed a little over a hundred games, mostly Genesis favorites, but also select few 32X, Sega CD, and Master System titles. It may not be the forever list, but it’s a great start.

Installing the safe shutdown scripts

One of the biggest gotchas with building a Pi-based anything is that the board doesn’t have a power switch. Out of the box, you’re expected to plug in the power to turn it on, and make sure to safely shutdown from within the running software to turn it off. If you don’t, and just pull the power, you risk corrupting the SD card and breaking your system.

Thankfully, the MEGAPi case wires its power switch and reset button to the Pi’s GIPO pins, and RetroFlag provides scripts you can install on your system to trigger a safe shutdown or restart when they’re used.

Update: Whoops! Apparently the base Blast 16 image already includes a working safe shutdown script that I completely missed. My version is unnecessary and installing it may give you some random error messages.

Unfortunately, RetroFlag hasn’t touched their code in a while, so the scripts have bugs and the install instructions didn’t work for me with Blast 16. I ended up forking their code and fixing the scripts myself for the Blast 16 / MEGAPi combo. I’ve written up revised instructions here, but long story short, if you want to copy my work, once you’ve gotten your Pi’s network configured, you just need to run the following from a terminal:

wget --no-check-certificate -O - "https://raw.githubusercontent.com/jonthysell/retroflag-picase-blast16/main/blast16_install.sh" | sudo bash

After it reboots the power switch and reset button will work as expected.

Final thoughts

I really love how well this project turned out. It looks so nice under my TV:

The UI is beautiful, and while I normally like the clean, pixel-perfect look when emulating, I’ve found I really like simulating an old CRT on this setup by setting the scaling to 4:3, turning on scan lines, and enabling the NTSC composite filter. Note: that last option meant going into RetroArch’s menus, so while that isn’t strictly necessary, I like that it’s still available.

In fact, having access to RetroArch’s menus meant I was also able to enable RetroAchievements, which was listed in Blast 16’s FAQ as unsupported. It works great, and I find adds a whole new level of fun when playing these old games.

Overall I’m thrilled to finally fulfill this old dream of mine, and while it doesn’t have literally every single game, I expect to spend plenty of hours playing my custom Sega Genesis Mini.

/jon

My Mac SE/30 Part IX: System 7.5 Boot Floppy

In Part VIII of this series, I finished prepping a 2 GB SD card for the SCSI2SD that will serve as the primary disk for my vintage Macintosh SE/30. Now it’s time to get that disk formatted and a working system installed, but to do so I’ll need to create a boot floppy first.

As a quick recap, at this point I have a Macintosh SE/30 with a working floppy drive. I’ve installed 64 MB of RAM along with a GGLABS MACSIMM ROM replacement. I’m using the aforementioned SCSI2SD to simulate a single 1.75 GB hard drive, on which I intend to install System 7.5.5.

Formatting plan

The first thing I want to do is format that 1.75 GB drive with an HFS filesystem. The usual process is to boot from a floppy and use either the Apple HD SC Setup (for System 6) or Drive Setup (for System 7) program to format the drive. However, I’ve found that those programs don’t work well with the SCSI2SD. They don’t recognize the non-Apple drive by default, and even if you get a “patched” version which does, the resulting disk will have data corruption problems.

The solution is to use the third-party disk formatter Lido 7.5.6. It works perfectly fine with the SCSI2SD, however it doesn’t come preinstalled on a bootable floppy. So the actual first thing I need to do is to make a bootable floppy.

Creating the boot floppy

While there are many methods for doing this, I decided that since I’m planning on installing 7.5.5, that I wanted a 7.5.5 boot floppy. However by this time system CDs were becoming the norm, so the closest I could find was Apple’s System 7.5 Network Access Disk.

It’s provided as a disk image stored in a MacBinary-encoded self-extracting archive, so the first step is to download it onto a working classic mac and extract the disk image with Stuffit Expander. Then you can use the Disk Copy program to write the extracted “Network Access.image” file to a real floppy.

This is where having a bridge machine, like the Power Macintosh 8600/200 I previously restored, comes in handy. I could have easily done the whole process, from download to physical floppy, right there. But let’s assume for a moment that you don’t have a bridge machine, is it still possible to create a vintage mac boot floppy? Yes!

Note: Okay, technically, if your vintage mac only accepts 400/800k disks, then the answer is no. You’ll need a real, already working vintage mac to write one of these older floppies.

What you’ll need to do is create a bridge machine in emulation, with something like Mini vMac. To be honest, I use Mini vMac as a bridge machine way more often than I use my PowerMac. Other than the lack of networking and CDs, it covers most of my needs quite well.

Now, I’m not going to detail how to get Mini vMac set up. There are already plenty of tutorials out there for that and it’s worthwhile to get comfortable with the program before continuing. What I’ve got set up is a Macintosh II running System 7.5.5 with Stuffit Expander and Disk Copy (as above), along with the apps ImportFI and ExportFI to get files into and out of the emulator.

Creating a raw DSK image file

Without access to a real mac floppy drive, what we want is a raw DSK image of the Network Access disk. That is, we want a file with a 1-to-1 copy of the bits of that bootable floppy, without any extraneous headers or metadata. To start, we’ll need to use Mini vMac to get the Disk Copy image out of the archive:

  1. Download the Network_Access_Disk_7.5.sea.bin archive to your PC.
  2. Use ImportFI to import the archive file into Mini vMac.
  3. Use Stuffit Expander within Mini vMac to extract the archive’s contents.
  4. Use ExportFI to export the “Network Access.image” file out of Mini vMac back to your PC.

Now, the file we’ve exported is almost what we need. It’s a Disk Copy 4.2 image with all of the data we want, but it’s still wrapped up in some metadata we don’t. To strip that metadata we’re going to use a tool called Convert2Dsk.

Convert2Dsk is a small command-line tool I wrote to convert Disk Copy 4.2 images into raw DSK images on modern PCs. It works on Windows, OSX, and Linux, can even handle image files that are BinHex (.hqx) or MacBinary (.bin) encoded. Simply pass it an image file (or folder of image files) and it’ll convert them into DSK files.

On Windows, it’s as simple as dragging the “Network Access.image” file onto convert2dsk.exe, which will then create the “Network Access.image.dsk” file we want.

Writing the raw DSK image to a floppy

Now that we have a raw DSK image, it’s time to write that file to a floppy disk. Obviously that means you’ll need a floppy drive and at least one 1.4 MB floppy disk. You can get an external USB floppy drive on eBay, though a pro-tip is to avoid the new stuff from China, and instead pick up an older used drive made by one of the big PC manufacturers. They may cost a little more but they’re of higher quality and less likely to give you problems. I bought an old Dell floppy drive for $20 and it works perfectly.

Software-wise, you’re going to need a program to read and write the disk images, and I use dd (for Windows). It’s a powerful command-line utility for utility (also on OSX and Linux) for reading and writing directly to a drive by sectors. So from a command-prompt I’ll call dd.exe like so:

dd.exe if=<image file> od=<floppy drive letter> --progress

Which, with the file we created earlier, and my USB floppy registered as the A: drive, looks like:

dd.exe if="Network Access.image.dsk" od=a: --progress

Running with a floppy inserted will overwrite its entire contents with the contents of the DSK file. If you see “80+0 records in” and “80+0 records out”, then the write worked and the floppy is ready to use. Pop the disk into the SE/30, flip the switch, and… it doesn’t boot.

Fixing a 7.5 disk to boot a SE/30 with an upgraded ROM

It turns out that the combination of a SE/30 with the MACSIMM ROM replacement (which is based on the IIsi ROM) isn’t recognized by System 7.5 and above as a valid Macintosh computer. Thankfully this problem can be solved by making a minor patch to the system files, as detailed in this post: Mac SE/30 with Upgraded ROM.

However, I found that post to be a little overzealous in its instructions. Their goal is to setup a machine with each and every system version, using a tool called System Picker to let you switch between them. While it works, it’s a tedious process, and as I’ve stated, I only want System 7.5.5. So, simplifying their steps, here’s what I did in Mini vMac:

  1. Mount the raw DSK image as a floppy “Network Access.image.dsk” in Mini vMac.
  2. Use ResEdit to open the “System” file in the “System Folder” on the disk.
    1. Open the “gusd” resource.
    2. Open “ID 1”.
    3. Go to the 4th line (offset 000018) and change the end from 03 to 05. That is, the line should have changed from 0008 0003 0009 0003 to 0008 0003 0009 0005 as per below:
Modifying the System file in ResEdit
Modifying the System file in ResEdit
  1. Save and close the file.
  2. Eject the disk from Mini vMac.

Now if you write the modified disk image to a floppy using dd (as above), it should be bootable on the upgraded SE/30.

So that’s it, that’s how to create a System 7.5 boot floppy that will work on an SE/30 with an upgraded ROM. Stay tuned for Part X, where we’ll finally switch to the SE/30 and start setting up its disk drive.

/jon

Want to read from the beginning? Start at Part I.

Reviving a Sony WM-FX28 Walkman

I had been looking for a small restoration project, something with electronic and mechanical components that could be completed in less than a day, when I stumbled upon some YouTubers who still use audio cassettes.

It reminded me how much I obsessed over audio equipment as a child. Every time a family member upgraded their stereo systems I would beg for the old components, and by the time I was a teenager in the late 90’s I had built an absurdly mismatched setup in my media tower.

Part of that system included an old wood-panel tape deck complete with needle meters. I never had many commercially produced cassettes, but I had stacks I’d recorded myself. I loved recording video game music to listen to on my walkman, or dictating story ideas through the set of “professional” microphones I’d scrounged.

So, watching these YouTube videos, I started to get a better understanding how cassettes and cassette decks work. I enjoyed seeing that, if you knew what you were doing, you could actually make pretty high quality recordings on cassette.

Which, by the way, taught me that I was doing everything 100% wrong as a child. Oops.

Now, I don’t have any old cassettes to play, nor do I have a pressing need to set up a full deck for recording, but after some deliberation, I decided that I wanted to try my hand at fixing and restoring a walkman. Nothing fancy, not the golden-grail best player desired by current cassette collectors – just take a regular broken walkman and get it up and running again.

I searched eBay for options and finally settled on this Sony WM-FX28:

The listing said the radio worked but the tape didn’t, and it was only $10 before shipping. I looked around online and was able to find PDFs of both the Sony WM-FX28 User Manual and the Sony WM-FX28 Service Manual. So I went ahead and bought it.

The number one reason a cassette player stops working is that the rubber belt inside has worn out, stretched, or just straight up broken. It’s a simple repair – if you can get the right sized belt. Thankfully I was able to find a Sony WM-FX28 replacement belt online for cheap. The other thing you need to do (especially after replacing a belt) is to calibrate the speed of the motor, so I just added a speed calibration test tape to my order.

Now the site I bought these from, Fix Your Audio, is one of the few (if only) places left in the world where you can reliably get these kinds of replacement parts for cassette equipment. It’s located in Slovakia, but I was pleasantly surprised that it only took a week for the package to get to me in the USA.

The last tool I ordered was a Cassette Head Demagnetizer. As tapes play, the magnetic material in the tape can slowly magnetize the cassette head (the part which rubs against the tape to read the signal). This will affect the quality of the sound, but more importantly, a magnetized head can potentially erase a tape as it’s playing. So it’s important (especially when getting a used player) to demagnetize the head so it won’t ruin your tapes.

Speaking of, even if I got the walkman working, I didn’t have any cassettes to actually play on it. So I started hitting up eBay and Discogs looking for Hawaiian cassettes. I was able to get a (still sealed) copy of Hawaiian Slack Key Guitar Masters along with a copy of my all-time favorite album: Mākaha Bash 3: Live At The Shell.

With all my orders in place, it was time to clear some desk space for the project. The first things to arrive were the walkman itself, the replacement belt and calibration tape, and the copy of Mākaha Bash 3:

As listed, the radio functioned just fine, but nothing moved when pressing the tape controls. So, following the service manual, the first step was to pop off the back shell:

Oops! As you can see, I got the shell off, but at the expense of a few of the plastic tabs that attached it. I probably should have been a little more gentle with the old plastic, but I also think the service manual deserves some blame here. I exaggerate, but step 1 is like “insert screwdriver here to separate the shell”, step 2 is “open the tape door and release this tab” then step 3 is like “in step 1 you should have removed the shell in this exact order”.

Anyway, there’s still plenty of tabs left, so next I took a look at the mechanism itself. Looking closely at the motor on the right, you can see where the belt is tangled around the shaft, rather than looped nicely around the brass pulley:

Adding batteries and pressing play, you could see the motor trying to run but the belt was just getting caught tighter underneath. Removing the belt allowed the motor to run quite freely:

Disregarding that growing pile of broken plastic bits from my bad shell removal, you can see how much the old belt stretched by comparing it to the replacement side by side:

With the belt out I took a moment to clean things with some compressed air along with good ol’ cotton swabs and isopropyl alcohol. Then I installed the new belt:

With the new belt in, I reinserted the batteries and tried the controls. Play would run the gears but that little white arrow in the center kept snapping back and forth with an awful clicking noise. Fast-forward would only run for a second before stopping, while rewind caused the the whole thing to lock up while the motor spun away, rubbing on the belt but not getting any traction.

I couldn’t see anything that looked straight up broken: no missing teeth on the gears and no stray bits of plastic that I wasn’t responsible for. I continued my search (and cleaning) by popping out the entire board and checking everything underneath:

Finally I decided my best bet was to try lubricating all of the gears. I used the plastic on plastic grease I’d bought for when I eventually tune-up the floppy drives in the macs I’m still restoring:

I made sure to get the grease onto the shaft of every rotating part in the mechanism. After I was satisfied that I’d gotten it everywhere it needed to be, I popped in the batteries and tried the controls again:

Sony Walkman WM-FX28 with new belt and greased gears

It worked! Play, fast-forward, and rewind all ran perfectly with no clicks or hang-ups. I really wish I’d had the presence of mind to record how it ran like before the repair, but c’est la vie. With the mechanism working again, I put the whole thing back together, thankful enough plastic tabs remained for it to stay together.

The next step was to demagnetize the head. According to the instructions (and people online) you want do this far away from any kind of magnetic media, as the demagnetizing wand is basically a wall-powered electromagnet. In the age of solid state drives that might not be a risk in most modern offices, but with my other retro restorations I’ve actually amassed a small assortment of floppy disks and hard drives in my workspace. So it’s off to the dining room table:

To use the wand you have to plug it in several yards away from the target, approach it very slowly, touch the items to demagnetize for roughly five seconds each, then back away slowly and unplug it back where you started. If you go too fast, or touch the wand on the head for too long, or cut the power while you’re still too close, you risk doing the exact opposite of what you want and magnetizing the head even more.

So I propped open the cassette door and dutifully snuck up on my unsuspecting walkman like I was pranking it while it slept. Who said electronics restoration wasn’t exciting?

With that finally out of the way, the last step was to calibrate the speed of the motor. The idea is to play the calibration tape, which has a 3 kHz tone recorded onto it, and verify that the pitch isn’t too high or too low. You use a tool called a “frequency counter” to see the exact frequency being played, and adjust the speed of the player’s motor until the tone is exactly 3 kHz.

I don’t have a physical frequency counter, but thankfully there’s plenty of free smartphone apps that work just fine for the job. Also this particular walkman exposes the speed adjustment potentiometer through a tiny hole in the back of the case, making it easy to adjust the speed without having to take everything apart.

So I inserted the calibration tape, connected headphones, cranked the volume, and installed Audio Frequency Counter onto my phone. The app picked up the signal at a few hundred kHz too fast, so I adjusted it down with a tiny screwdriver until I was as close as possible to 3 kHz:

Finally, after all that work, I put in my Mākaha Bash 3 cassette, took a deep breath, and pressed play:

It worked perfectly! I listened through the whole album, both sides, without any issues. I made lunch while listening through my very anachronistic modern earbuds, since I don’t have any old over-ear style headphones.

After that first playthrough I did redo the speed calibration just in case things had loosened up, but otherwise, I think it’s safe to call this repair is complete. Despite some missing bits of plastic, I’m happy with the results.

Now the only question is: do I stop here, or do I need to take the next step and get a cassette recorder up and running? We’ll see.

/jon

My Mac SE/30 Part VIII: SCSI2SD Setup #2

In Part VII of this series, I planned out the configuration for the SCSI2SD I’ve installed in my vintage Macintosh SE/30. Now it’s time to actually set everything up.

As described in my last post, I plan to divide up a 2 GB SD card like this:

Partition NameDescriptionTypeSector OffsetSize (Sectors)Size (Bytes)
SCSI2SDBackup UtilsFAT065,53633,554,432 (32 MB)
Unallocated65,5362,0481,048,576 (1MB)
Macintosh SDSCSI 1HFS67,5843,670,0161,879,048,192 (1.75 GB)
Unallocated3,737,600184,32094,371,840 (90 MB)
Total3,921,9202,008,023,040 (1.87 GB)
My partition setup for a 2 GB SD card (1 sector = 512 KB)

Creating the FAT partition

The first step is to create the 32 MB partition at the start of the card. Usually SD cards come with an existing file system, so the first thing we need to do is remove it. On Windows 10 you can launch the Disk Management control panel by bringing up the Start menu, typing “disk management” and selecting Create and format hard disk partitions.

Disk Management - New 2GB SD Card
Disk Management – New 2 GB SD Card

On my PC, the card is mounting as the F: drive, and you can see it already has an existing FAT file system that spans the entire card. The first task is to delete that file system. This is as simple as right-clicking on that F: drive at the bottom of the window and selecting Delete Volume….

You’ll be prompted that this will delete everything – go ahead and click Yes. Afterwards it should look something like this:

Disk Management – Unallocated 2 GB SD Card

Now we want to add our new 32 MB FAT file system. Right-click on the unallocated space for F:, select New Simple Volume…, then click Next >. Here’s where you’ll set the size to 32 MB:

New Simple Volume Wizard – Specifying Volume Size

After clicking Next > again, you’ll be prompted to pick the new drive letter. It’s annoying that you can’t keep using F: here, but don’t worry, you can change it later if you really want to. On my computer it picked K:. I just took a note of the new drive letter and clicked Next > again. Here’s where you’ll be prompted to pick the type of file system and give the volume a name.

As per my table above, I’ve picked FAT and set the label to “SCSI2SD”:

New Simple Volume Wizard – Specifying File System and Label

Click Next > and then Finish to create the new partition. Afterwards, Disk Management looked like this:

Disk Management – New 32 MB FAT Partition

Perfect! I now have my 32 MB FAT partition and an approximate 1.84 GB of unallocated space for SCSI2SD to use. More importantly: I have the peace of mind that I can insert this card into any computer without risking an accidental format which corrupts my vintage mac data.

Configuring the SCSI2SD

The next step is to configure the SCSI2SD, which means we’re done with the Disk Management tool and can return the SD card to the SCSI2SD. Then we’ll need to go and download the latest scsi2sd-util6 and (if you’re out of date) the latest firmware file for your model.

There’s a quick start guide (at the link above) that details installing the PC driver, connecting your PC to the SCSI2SD via a USB cable, and flashing the latest firmware file. Once you’ve done all that, it’s time to use the scsi2sd-util6.exe tool to configure the SCSI2SD.

For my model SCSI2SD (a 2020 V6), installed in my SE/30, this is how I configure the General Settings tab:

scsi2sd-util6 – General Settings

Next it’s time to set up the virtual SCSI devices. I select the Device 1 tab and configure it accordingly:

scsi2sd-util6 – Device 1

Now, you might be asking, “Why am I setting up the 32 MB FAT partition” as a SCSI device? Will the classic mac be able to use it?

Unfortunately, no. While various vintage mac utilities will see that the device exists, they won’t be able to access any files on it. However, the SCSI2SD V6 has an interesting feature, where, when you plug it into your PC with the USB cable, it will try to expose the SCSI devices to the computer as USB drives. So by setting this virtual device up, the 32 MB FAT drive appears on my PC and files can be managed directly without having to to remove the card. It’s not strictly necessary, but it is a nice bonus perk.

Anyway, on to the Device 2 tab, where again I set the values according to the table above:

scsi2sd-util6 – Device 2

You’ll notice that I haven’t done anything to “spoof” a particular drive by modifying the values for Vendor, Product ID, etc. Other guides often recommend using particular settings here, so that you can use the official Apple tools to format the new drive. The official tools only support specific drive models, and so must be tricked into thinking that’s what’s connected.

However, after much painful experimentation, I’ve found that neither Apple HD SC Setup (for System 6) nor Drive Setup (for System 7) works properly for this, even if you trick it into running. The newly setup drive will report its capacity incorrectly and suffer from constant data corruption and loss. I tried many times and was never even able to install a fresh system onto it.

In the end, I found that the only working way to set up the mac drive was to use the 3rd-party formatting tool Lido, which has no restrictions on what drives it can format, and works flawlessly.

But I’m getting ahead of myself. After setting this all up, the next step is to save it to the device, by selecting File > Save to device. I’ve also found it prudent save a backup of this configuration to my PC by doing File > Save to file… and naming it scsi2sd.xml. After that you’re ready to (safely) eject and disconnect the USB cable. Now the SCSI2D is ready to be used on my SE/30.

Some finishing touches

But before we switch to the SE/30, I have a couple more “quality of life” tricks I’d like to share, revolving around the card’s little FAT partition. I’ve curiously described as for “Backup Utils” and that’s what I use it for: backing up copies of all PC-side files I used to set up the device.

So, reinserting the card back into my PC, my drive now looks something like this:

SCSI2SD 32 MB FAT Drive Contents

You can see copies of the scsi2sd-util6 tools, the latest firmware, the quick start guide PDF, and the configuration backup scsi2sd.xml we just created. But there’s also two other files: dd.exe and manage.cmd.

If you’re familiar with common Unix utilities, dd.exe is just dd for Windows. It’s a small but powerful utility for reading and writing directly to a drive by sectors, making it very useful tool for creating and restoring backups as disk images.

The other file, manage.cmd, is something I whipped up myself. It’s a small script which makes it easier to use dd.exe to backup and restore the SCSI2SD virtual devices as individual image files.

Launching it provides this menu:

manage.cmd Menu

This is part of the reason why I saved my SCSI2SD config as the file scsi2sd.xml. Manage.cmd reads this file to determine which sector ranges on the disk correspond to virtual devices. This is also why I explicitly added the FAT partition as a device in the SCSI2SD config – so this script would be able to see it.

Now typing “1” and pressing enter, the script will prompt me, for each virtual drive, where to save a backup disk image. Then it will invoke dd.exe with the proper arguments to save off the image files:

manage.cmd Backup

To restore those image files, it’s as simple as entering “2” at the menu, and you’ll be walked through the reverse – prompting for the image files you wish to write back to the SD card. It’s not the most sophisticated system, and still doesn’t give me direct access to files within those images, but it’s a little nicer than having to run dd.exe by hand.

Note: The manage.cmd script expects to be run from the actual SCSI2SD SD card, as it uses that location to determine which disk to read and write from. If you use it, make sure that you also keep a backup copy of your scsi2sd.xml file in a place other than the actual SD card.

Well, that’s it for this post. Stay tuned for Part IX, where we’ll get back onto the SE/30 and start setting up a working system!

/jon

Want to read from the beginning? Start at Part I.

P.S. My thoughts on how to plan, execute, and document setting up my SCSI2SD was largely influenced by these two blog posts: SCSI2SD: Using a SCSI2SD adapter to setup your 68k Macintosh and Apple IIe Card and SCSI2SD: How I have my SCSI2SD setup for my Apple IIe card in my LC 475. Enormous thanks to the folks at savagetaylor.com for all of their detailed posts on classic macs and the SCSI2SD.

My Mac SE/30 Part VII: SCSI2SD Setup #1

In Part VI of this series, I replaced the dead hard drive in my vintage Macintosh SE/30 with a modern SCSI2SD.

Next I’ll need to set up and configure the SCSI2SD to meet my needs. Now, despite the wonderful versatility of the device, its configuration is not for the faint of heart, especially when used in a vintage Macintosh. Thankfully this isn’t the first time I’ve tangled with configuring a SCSI2SD – when I initially restored my Power Macintosh 8600/200, I also used a SCSI2SD instead of a standard hard drive. In fact, I used this exact SCSI2SD!

See Adventures in Macintosh restoration Part VI: Booting up and jacking in for that story.

In short, the power of the SCSI2SD is that it can be set up to emulate one or more virtual drives all on a single SD card. However classic macs (or at least, the official disk tools needed to set up a new drive) are picky about the brands and models of drives they support. So while you can set up your SCSI2SD virtual drives to “spoof” those blessed drives, the configuration software is not very user friendly.

Sectors not files

The biggest annoyance with the SCSI2SD is how it stores these drives on the SD card. You’d expect that it would just use a standard formatted SD card with each virtual drive stored as a separate “image file”, like with the Floppy Emu. Instead the SCSI2SD writes directly to a range of raw sectors on the SD card, ignoring anything else about how the card is set up.

So if you pop the SD card into your PC, you won’t see obvious files like “Disk 1.dsk” or anything. In fact the default SCSI2SD configuration is a 2 GB virtual drive written to sector zero at the very beginning of the card. Which is actually kind of a problem.

Now, this is a simplification, but sector zero is usually where the filesystem information (the names and locations of each file) is stored. A PC will look at sector zero for a filesystem it understands, which these days is typically FAT, FAT32, exFAT, or NTFS. It won’t recognize a vintage filesystem that may be there. So when it doesn’t find the data it expects, it’ll assume the disk needs to be formatted, and will prompt you to do so.

Accepting that prompt will, in all likelihood, completely corrupt or destroy the data on your card. Yikes!

With this setup, the best you can do is always remember to say no to formatting, which will preserve your data, but also severely limit how you can interact with it. You can still use modern disk imaging utilities to back up the entire SD card to an image file on your computer. However you won’t be able to easily separate out multiple virtual drives, let alone transfer individual files in or out of them.

A better setup

While complete disk images are useful (and better than no backup), I’ve found a better setup which makes life a little easier on myself.

The trick is to put a modern filesystem on the card, starting at sector zero, but not take up the entire disk with it. If I only create a small 32 MB FAT partition, and leave the rest of the disk “unallocated”, then when I stick the card into a PC, it’ll see that small filesystem and not prompt me to format anything. The PC will ignore all of the unallocated space after the partition, so that’s where I’ll configure the SCSI2SD to write its data.

By keeping them separated in this way, neither the PC nor the SCSI2SD will ever interfere with one another in regular, everyday usage. You can add or remove files on that small FAT partition without ever worrying that you’re corrupting the vintage data managed by the SCSI2SD.

Okay, but why only a 32MB FAT drive? Why so small?

While my space needs for this vintage SE/30 are small, I don’t really intend to use the FAT partition for all that much. So there’s no need to take away a bunch of space that the SCSI2SD could be using. In fact, as we’ll see later, I only intend on using the FAT partition to store some useful tools relevant for using the SCSI2SD.

Disk planning for my SE/30

Speaking of my SE/30, my original plan was to have two virtual drives for this machine, one with System 7.5.5, and another with System 6.0.8 for older, “32-bit dirty” applications. For more information about what “32-bit dirty” means, see My Mac SE/30 Part IV: Upgrade Plans.

However, while people may have “dual-booted” back in the day, in my experiments I found that keeping a System 6 setup was completely unnecessary. There’s really nothing I can’t do in System 7 – if I need to run “32-bit dirty” apps, it’s easy enough to just toggle the switch in the Memory control panel and reboot. Actually switching between System 6 and 7 meant toggling the switch and letting each system “rebuild the desktop file” on the disk every time it restarted, which was annoying.

Ultimately, I found it much easier to just keep a set of System 6 images on my Floppy Emu, and plan on booting from floppy if I ever really need to run System 6. With that decision made, the biggest question now was how big of a disk did I need for System 7.5.5?

The maximum size of a classic mac drive (using the vintage HFS filesystem partition) is 2 GB. Realistically, I’ll probably never need that much space on this machine. I mean, the old drive in this machine wasn’t even 0.5 GB and would have been crazy expensive at the time. At my first pass, since I only want to manage one virtual drive, my first instinct is to create a 2 GB disk on a 2 GB SD card.

However, just because an SD card is advertised as being 2 GB, doesn’t mean it can literally store 2,147,483,648 bytes of data. Beyond the regular manufacturer marketing shenanigans of memory bytes vs storage bytes, different SD cards from different manufacturers may have different numbers of actual bytes available.

Which means, rather than use all of the unallocated space for my virtual drive, it’s safer for me to make the disk smaller and leave a decent safety buffer at the end. That way if my card dies and needs to be replaced with a new one that happens to be slightly smaller, I won’t have to worry about my backups not fitting.

Anyway, in the end, I decided to set up my 2 GB SD card like this:

Partition NameDescriptionTypeSector OffsetSize (Sectors)Size (Bytes)
SCSI2SDBackup UtilsFAT065,53633,554,432 (32 MB)
Unallocated65,5362,0481,048,576 (1MB)
Macintosh SDSCSI 1HFS67,5843,670,0161,879,048,192 (1.75 GB)
Unallocated3,737,600184,32094,371,840 (90 MB)
Total3,921,9202,008,023,040 (1.87 GB)
My partition setup for a 2 GB SD card (1 sector = 512 KB)

I have two main partitions: the 32 MB FAT drive at the start to satisfy modern machines, and a 1.75 GB HFS drive for my SE/30. I’ve also put a small 1 MB buffer between the partitions for a little extra safety and separation, and finally there’s some 90 MB of buffer at the end of the disk.

With that plan in mind, stay tuned for Part VIII, where I’ll walk through the steps of actually setting up the SD card in this fashion.

/jon

Want to read from the beginning? Start at Part I.

P.S. My thoughts on how to plan, execute, and document setting up my SCSI2SD was largely influenced by these two blog posts: SCSI2SD: Using a SCSI2SD adapter to setup your 68k Macintosh and Apple IIe Card and SCSI2SD: How I have my SCSI2SD setup for my Apple IIe card in my LC 475. Enormous thanks to the folks at savagetaylor.com for all of their detailed posts on classic macs and the SCSI2SD.