|
Introducing the NEX
Frontier Labs once manufactured a
nifty MP3 player called the NEX. It had 64MB of flash RAM, was well build, and
was cheap. Unfortunately is has vanished off their website, along with the
software that accompanied it, and has been replaced by much fancier versions.
The software (if you kept the original CD safe) had one slight flaw as well: it
only worked on Windows 9x kernels, which limited it to Windows 95, 98, and ME.
Attempting to run the program in Windows NT, 2000, or XP resulted in an
exception as the program required direct port access. That it required Windows
at all was also a minor problem.
Along with the demise of the NEX was the demise of the documentation. The player
was developed outside Frontier Labs, and the company that designed it and
produced the software went out of business. There was no documentation on the
protocol used by the player to communicate with the computer.
The solution
Emboss (through Michael Brown) has gained permission from Frontier Labs to mount
a reverse-engineering effort on the player. It has been determined how to read
memory from the player, and from this the memory format was largely determined.
Currently, writing to the player is not yet completed, but listing the songs on
the player and downloading songs from the player should be functional.
The initial effort, before permission from Frontier Labs was gained, was to
reverse engineer it through the use of a microcontroller monitoring the parallel
port cable. Once permission was gained, disassembly of the program was used to
verify the results and also to gain more insight into the protocol.
The software is currently released under a MIT-style licence,
though this can change if you do not wish to contribute to a project that uses
this licence.
The email conversation, along with comments, can be viewed
here.
The current package
There are 3 current packages:
- nexnix-x.x.x.x.src.zip contains the source code for the
command-line tool for viewing the contents and downloading songs from the
player. It has been written and tested under Delphi 7 and Kylix 3. This
also contains the current documentation on the memory and protocol format.
- nexnix-x.x.x.x.win.zip contains the windows binary of the
command-line tool.
- nexnix-x.x.x.x.lin.zip contains the Linux binary of the
command-line tool.
The documentation is also available online:
To recompile the program you require Delphi (tested with version 7) if you wish
to recompile for Windows, or Kylix (tested with version 3) if you wish to
recompile for Linux. |