Introducing scuzEMU, a SCSI Emulator Utility

saybur

Well-known member
Here is the first release of scuzEMU, a SCSI emulator control utility. This System 6+ app can choose mountable removable disk images and download files directly from a compatible SCSI emulator's SD card. I've developed this with a ZuluSCSI running firmware 2024.05.17 (with Toolbox=1 in the INI file under [SCSI]) but the goal is to get this working on any device implementing the "toolbox" functions originally developed for use with BlueSCSI.

The attached version still needs significant development and testing. I'm releasing it now in the hope others will find it useful in its current state and provide feedback. Source is included, under GPLv3. Patches are very welcome! My list of things to fix is pretty long and is partially listed in the included README. Once I figure out all the file conversion issues I intend to get this up on Github as well.

To use, unpack the .sit file and run the program. Once launched, go to Open, select the SCSI ID of the emulator and if you want to download files or change images, then click OK. Double click items in the list that pops up to either fetch a file or choose the next disk image to mount.

scuzemu.png

If you try this out, let me know how it goes. Thanks!
 

Attachments

  • scuzEMU-0.1.sit
    81.1 KB · Views: 12

Arbee

Well-known member
Interesting. Is there documentation someplace on how these programs talk to the SCSI emulator? I'd definitely be interested in supporting that API in MAME to make transferring files into the emulation easy.
 

saybur

Well-known member
I didn't personally use it, but you may find the command reference at https://github.com/BlueSCSI/BlueSCSI-v2/wiki/Toolbox-Developer-Docs to be helpful as well.

One caveat: followed to the letter, that page's advice will vendor lock you to BlueSCSI firmwares only:

https://github.com/BlueSCSI/BlueSCS...ab0/lib/SCSI2SD/src/firmware/mode.c#L249-L255

I don't think that's a very friendly approach, so scuzEMU will send commands to whatever device the user indicates without validation: just pick the emulator's SCSI ID. A future release will probe the mode page and check the API version when a new one arrives.
 

Daniël

Well-known member
Nice to have an open source tool like this, that anyone with the ZuluSCSI derived emulators can use! It's what makes this community great :)

I don't think that's a very friendly approach, so scuzEMU will send commands to whatever device the user indicates without validation: just pick the emulator's SCSI ID. A future release will probe the mode page and check the API version when a new one arrives.

That bit of code is informative, and unfortunate.
 

Arbee

Well-known member
It's cute that they're using a reference to the original Mac's STOLEN FROM APPLE COMPUTER icon as an ID, but there should be a vendor-neutral identifier for "toolbox" support.
 

bakkus

Well-known member
Please enlighten me here..
BlueSCSI dev writes an extra piece of software to interact with BlueSCSI. "Normal SCSI" devices can't interact this way, so a check needs to be created.
A check for Apple SCSI hard drives is implemented above - so checks for BlueSCSI is implemented the same way.

How is this unfriendly, cute, unfortunate, telling, etc?
 

Daniël

Well-known member
Please enlighten me here..
BlueSCSI dev writes an extra piece of software to interact with BlueSCSI. "Normal SCSI" devices can't interact this way, so a check needs to be created.
A check for Apple SCSI hard drives is implemented above - so checks for BlueSCSI is implemented the same way.

How is this unfriendly, cute, unfortunate, telling, etc?

Knowing that unfriendly competition permeates the SCSI emulator scene (and that's putting it mildly), statements like "Stolen from BlueSCSI" are symptoms of that environment (and ironic in a file that starts with the SCSI2SD copyright ramble...). It also exemplifies the selective open sourceness of BlueSCSI, as components like the Toolbox Software weren't open sourced due to the developers really not wanting ZuluSCSI users to be able to benefit from it.

All in all, no one is helped by this spiteful behavior except the various teams' egos, so that's why I'm glad third parties are now getting involved in writing fully open source components to fill the gap, such as scuzEMU. Everyone is helped by that.
 

twelvetone12

Well-known member
I think what makes it unfortunate, apart the string itself, is that if anybody would like to be compatibile with the Toolbox Software in their scsi emulator, they need to add the string "BlueSCSI is the BEST STOLEN FROM BLUESCSI" to make it work. Doesn't seem all that friendly to me.
 

bakkus

Well-known member

saybur

Well-known member
But that's how GPL works?
That's how we have SCSI2SD => ZuluSCSI + BlueSCSI, ADBuino => HIDHopper + QuokkaADB, etc, etc
I don't think anyone is claiming a GPL violation. BlueSCSI benefited enormously from upstream GPL contributions. That's absolutely fine, it is part of the reason people license their code under GPL in the first place.

However, inserting a vendor specific (and trademark bearing) string into the mode page, requiring that string be checked by "compatible" software, and distributing the first-party client as closed source software with a restrictive "only for BlueSCSI" checkbox are all pretty obvious attempts to limit interoperability as far as a GPL-licensed firmware will allow. I consider that to be (at minimum) 'unfriendly' from an open source perspective, particularly when a project has such a long tail of GPL code they've benefited from.

That context in mind, the Apple reference feels less like "fun riff" and more "we mean what it says" IMHO.
 

Daniël

Well-known member
But that's how GPL works?
That's how we have SCSI2SD => ZuluSCSI + BlueSCSI, ADBuino => HIDHopper + QuokkaADB, etc, etc

Not sure why you're trying to assert that I'm claiming anything about the GPL at all.
I just found it ironic that it's in the same file containing code to stop the tool from being used with the product from the same (main) manufacturer as SCSI2SD, that's all.
 

LaPorta

Well-known member
Back on topic, this looks like an extremely helpful utility. I am very new to the BlueSCSI world, having used SCSI2SD for years. This is a great utility to have.
 

cheesestraws

Well-known member
starting a crowdfunder to send the whole bluescsi team t-shirts saying "does not play nice with other children" on ITT
 

Kouzui

Well-known member
I think what makes it unfortunate, apart the string itself, is that if anybody would like to be compatibile with the Toolbox Software in their scsi emulator, they need to add the string "BlueSCSI is the BEST STOLEN FROM BLUESCSI" to make it work. Doesn't seem all that friendly to me.
It's not. That's absurdly petty.
 

ymk

Well-known member
If the parent project were to implement page overrides from the INI file, this silliness would end in a hurry.

That one's on the house.
 
Top