From M:Robe 500i Development Wiki
There are three official, and one unofficial firmware versions for the m:robe 500i.
- Version 1.02 is the oldest. This version was available for those who bought m:robe when it first hit the market.
- Version 1.03 is available for download from the Olympus website.
- Version 1.04 is the newest known firmware version, and is not officially available for download. This version appeared on newly bought m:robe 500i players, or ones which were recently repaired or refurbished.
- Exploitable version of firmware 1.03 (N5002-BD-EXPv01.zip mirror) has been announced by shirour. This version allows one to run code placed inside a remix xml file. See Software Development.
- Custom images firmware allow you to add your own background images for the m:robe player. Click on the link for a detailed description.
Firmware File Format
See forum thread about the format.
See also forum thread with a Python script that implements the enciphering algorithm and checksum updating.
About the Firmware
At offset 39h of the decrypted firmware file, there is the string "SOL-eBinder-L". More information:
- eBinder by eSOL Co.
- "The environment for software development which can combine T-Engine/T-Kernel and eBinder", translated from Japanese
- It's possible the firmware uses the T-Kernel
The core of the firmware updater is in the OlyGin.dll file. The update process does roughly the following:
- Scans the system for a disk drive with the correct type (see article on CodeProject)
- Opens the disk drive using its device name (e.g. \\.\E:, see CreateFile, under Physical Disks and Volumes)
- Uses I/O control code 4D004h (IOCTL_SCSI_PASS_THROUGH) to send SCSI commands directly to the device
- The SCSI commands (first 4 bytes of the CDB) used are:
- The standard SCSI IDENTIFY command, to which the device responds with a human-readable identification string that also contains the firmware version (e.g. "OLYMPUS m:robe MR-500i 1.03")
- The remainder of the firmware update is carried out using SCSI commands in the range C0h - C4h inclusive, which is defined as vendor-specific
File Usage to Updater
- OlyGin.dll-runs everything/core
- AutoPlayCanceler.dll-turns off windows auto play of mrobe during session
- OlyGloss.dll-not sure yet