User Tools

Site Tools


himdmusictransferformac

This is an old revision of the document!


HiMDMusicTransferforMac

The transfer-software for HiMD under MacOS-X supports the following MD-Walkman:

MZ- RH1/DH10P/RH10/RH910/RH710

and can be downloaded here:

http://support.sony-europe.com/dna/downloads/downloads.aspx?l=en&f=MT

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" itself is necessary to communicate with the HiMD-Walkman, so the code to be analyzed is very few. The additional program "HiMD Monitor" is obviously only necessary to monitor whether a HiMD-Walkman is connected to the Mac and create a shortcut-link on the desktop to the transfer program once the walkman is connected.

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, even though the GUI does not provide any functionality for that. Furthermore the code contains all debug-symbols and is not secured against disassembling like the Windows-software SonicStage with its ocm-files. Loading the transfer-program into IDA Pro Advanced (with PPC-support) one gets huge information regarding the functionality of the software. Unfortunately there isn't any NetMD-functionality, which probably comes from the fact that NetMD uses it's own USB-protocol and thus requires also it's own driver.

To the current knowledge, the code which interacts with the HiMD-filesystem (which resides in the folder "HMDHIFI" on the HiMD) is written in C++. Several classes represent the HiMDFileSystem, a HiMDFile, HiMDIo and more. They provide methods to format a HiMD, add/delete/rename tracks, create/delete folders etc. The actual filesystem which stores the audio is an image-file which is itself a FAT-filesystem with 2kb Sectorsize.

Here a list of the C++-classes of the HiMD-code:

  • CHiMDUtilityBase
  • CHiMDMedium
  • CHiMDIo
  • CHiMDFindFile
  • CHiMDFileUtil
  • CHiMDFileSystem
  • CHiMDFile
  • CHiMDDeviceManager
  • CHiMDDevice

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 "libhimd" which then can be used from a simple Qt-based GUI to provide the functionality (and beyond :)) of "HiMD Transfer for Mac" on all platforms which support Qt.

himdmusictransferformac.1238060919.txt.gz · Last modified: 2009/03/26 09:48 by wikiadmin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki