himdmusictransferformac
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| himdmusictransferformac [2009/03/24 22:14] – wikiadmin | himdmusictransferformac [2009/06/29 14:38] (current) – wikiadmin | ||
|---|---|---|---|
| Line 12: | Line 12: | ||
| This software could help developing a Linux-software by analyzing the code of the transfer-program which is only about 1,5 Mbytes in binary. It appears that only the binary "HiMD Music Transfer" | This software could help developing a Linux-software by analyzing the code of the transfer-program which is only about 1,5 Mbytes in binary. It appears that only the binary "HiMD Music Transfer" | ||
| - | The software is a PPC-binary and contains much more functionality in its code than the GUI provides. For example, the code contains functions to format a HiMD or to encode ATRAC3-files, | + | The software is a PPC-binary and contains much more functionality in its code than the GUI provides. For example, the code contains functions to format a HiMD or to encode ATRAC3-files, |
| - | To the current knowledge, the code which interacts with the HiMD-filesystem | + | The code does not use the system supplied USB mass storage driver to access the HiMD device, but uses an internal implementation of the FAT file system. Interestingly, |
| + | |||
| + | |||
| + | ===== Screenshot ===== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Restrictions ===== | ||
| + | |||
| + | The software contains a blacklist to allow PCM-upload for specific models only (the MZ-RH10 | ||
| + | |||
| + | ===== Source Code ===== | ||
| Here a list of the C++-classes of the HiMD-code: | Here a list of the C++-classes of the HiMD-code: | ||
| - | * CHiMDUtilityBase | + | * CHiMDUtilityBase: Base class for CHiMDFileSystem using classes |
| - | * CHiMDMedium | + | * CHiMDMedium: Represents a specific HiMD medium. Each medium has a specific Disc ID which is obtained using a proprietary command |
| - | * CHiMDIo | + | * CHiMDIo: Subclass of CSonyScsiIO, |
| - | * CHiMDFindFile | + | * CHiMDFindFile: Represents the state of a search in the CHiMDFileSystem |
| - | * CHiMDFileUtil | + | * CHiMDFileUtil: Class of nice helper functions on the CHiMDFileSystem |
| - | * CHiMDFileSystem | + | * CHiMDFileSystem: Implementation of the FAT system (FAT16, 2k sectors) used on the MD |
| - | * CHiMDFile | + | * CHiMDFile: Represents an open file on the FAT system |
| * CHiMDDeviceManager | * CHiMDDeviceManager | ||
| - | * CHiMDDevice | + | * CHiMDDevice: Represents a HiMD device, which might contain a HiMDMedium. The Medium should have a HiMDFileSystem. |
| The goal here is to fully understand the C++-code which contains the HiMD-functionality and reimplement the code in C/C++ again. That code would reside inside a library called " | The goal here is to fully understand the C++-code which contains the HiMD-functionality and reimplement the code in C/C++ again. That code would reside inside a library called " | ||
| + | |||
| + | ===== Operation ===== | ||
| + | |||
| + | The following will try to explain in detail how the software works (incomplete). | ||
| + | |||
| + | ==== Download of an MP3 to a MiniDisc ==== | ||
| + | |||
| + | - Unmount the MiniDisc within MacOSX (the Disk-icon of the MiniDisc vanishes from desktop) | ||
| + | - Read disk-id and DES-encryption key from disk to generate key for block-encryption | ||
| + | - Fetch a 16kByte block of the source MP3 and encrypt it with some 3DES-like encryption, write into a 32kByte Buffer | ||
| + | - Fetch another 16kByte block, encrypt, write to the buffer and flush it | ||
| + | - Write the buffer to disk using special SCSI write-commands | ||
| + | - Repeat previous 3 commands until MP3 is written to disk | ||
| + | - Decode idv3-Tag from MP3 and create track-info and write to disk | ||
| + | - Once the application is closed, mount the disk in MacOS again (Icon reappars on desktop) | ||
| + | |||
| + | ==== Download of a PCM/ | ||
| + | |||
| + | - Unmount the MiniDisc within MacOSX (the Disk-icon of the MiniDisc vanishes from desktop) | ||
| + | - Convert input WAV-file to PCM used on HiMD (byte-swap etc) | ||
| + | - Download track onto disk with probably 16kByte blocks | ||
| + | - Prompt user to reload medium or disconnect/ | ||
| + | - Once the application is closed, mount the disk in MacOS again (Icon reappars on desktop) | ||
| + | |||
| + | === Proof for calculation of MAC by Walkman === | ||
| + | |||
| + | Output of // | ||
| + | |||
| + | before: | ||
| + | |||
| + | < | ||
| + | minimac2: | ||
| + | 1: 3:57 LPCM Unknown artist: | ||
| + | | ||
| + | Key: 0000000000000000; | ||
| + | </ | ||
| + | |||
| + | after: | ||
| + | |||
| + | < | ||
| + | minimac2: | ||
| + | 1: 3:57 LPCM Unknown artist: | ||
| + | | ||
| + | Key: 0000000000000000; | ||
| + | </ | ||
| + | |||
| + | ===== Links ===== | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | ===== Connecting the device to Linux, USB-Output ===== | ||
| + | |||
| + | < | ||
| + | [2405910.685270] usb 2-9: new full speed USB device using ohci_hcd and address 5 | ||
| + | [2405910.918600] usb 2-9: configuration #1 chosen from 1 choice | ||
| + | [2405910.926599] scsi18 : SCSI emulation for USB Mass Storage devices | ||
| + | [2405910.926599] usb-storage: | ||
| + | [2405910.926599] usb-storage: | ||
| + | [2405910.926599] usb 2-9: New USB device found, idVendor=054c, | ||
| + | [2405910.926599] usb 2-9: New USB device strings: Mfr=1, Product=2, SerialNumber=3 | ||
| + | [2405910.926599] usb 2-9: Product: Hi-MD | ||
| + | [2405910.926599] usb 2-9: Manufacturer: | ||
| + | [2405910.926599] usb 2-9: SerialNumber: | ||
| + | [2405916.130872] usb-storage: | ||
| + | [2405916.135091] scsi 18:0:0:0: Direct-Access | ||
| + | [2405916.147196] sd 18:0:0:0: [sdf] 149373 2048-byte hardware sectors (306 MB) | ||
| + | [2405916.154210] sd 18:0:0:0: [sdf] Write Protect is off | ||
| + | [2405916.154216] sd 18:0:0:0: [sdf] Mode Sense: 00 2a 05 00 | ||
| + | [2405916.154220] sd 18:0:0:0: [sdf] Assuming drive cache: write through | ||
| + | [2405916.181629] sd 18:0:0:0: [sdf] 149373 2048-byte hardware sectors (306 MB) | ||
| + | [2405916.187352] sd 18:0:0:0: [sdf] Write Protect is off | ||
| + | [2405916.187359] sd 18:0:0:0: [sdf] Mode Sense: 00 2a 05 00 | ||
| + | [2405916.187362] sd 18:0:0:0: [sdf] Assuming drive cache: write through | ||
| + | [2405916.187368] | ||
| + | [2405916.302773] sd 18:0:0:0: [sdf] Attached SCSI removable disk | ||
| + | [2405916.302773] sd 18:0:0:0: Attached scsi generic sg5 type 0 | ||
| + | [2406419.909323] usb 2-9: USB disconnect, address 5 | ||
| + | </ | ||
himdmusictransferformac.1237932852.txt.gz · Last modified: 2009/03/24 22:14 by wikiadmin
