Any file that is executed in every machine in every S.O. can be read in Hexa. BUT if you want to make a change you must know the microcontroller that is executing the codes, how to program it, and the S.O. then diassemble the file. Then you must undertand what the code does, find what changes into the code you want to make and where in the address of the file you want to change and the code of it in hex. Then and just then you can open that file with an Hex Editor and change the values. If not, you're making a MPx killer firmware. :lol:
Never do HexEdit without diassembling the code and know what it do. And it's impossible to do it without having the processor model of the MP4, his instruction set, without knowledge of how the codes executes, etc...
Also, making a MP4 emulator needs the same kind of knowledge.
If you guys still want to make some hexedit, i've heard some rumors that the processor is Z80, a very extended use processor. Here's some info:
http://en.wikipedia.org/wiki/Z80
The best way to verify this is opening the player.