For Mark or anyone who's interested, I'm attaching the results of some reverse engineering I've done which shows what I believe to be the meanings of some of the bits in empeg_state.

The Y axis denotes the hex offset from the flash base address, the X axis denotes the bit position within that byte. Because some settings go across byte boundaries, the diagram is color-coded.

Some details...

The bit labelled "shuf" is always 1 when any shuffle mode is active, and there seem to be various other bits and bytes which change based on the custom shuffle modes. I couldn't get a handle on those.. But when shuffle is off, the "shuf" bit (Offset 0x0F, bit 3) is 0, when any shuffle mode is active, that bit is 1.

Bytes 24 and 25 constitute a 16-bit sequential index into the current running order on the player. I hope to eventually use this index to grab the current FID number somehow.

Bytes 29 and 2A constitute a 16-bit number which represents the position within the current track. This might be the number of MP3 frames, or some number of milliseconds or something like that, not sure.

Numbers like balance and fader are 0 if they're in the center, negative if they're (right | rear), positive if they're (left, front). So if your balance setting is one "tick" to the left, the value in this byte is 0000001. If the balance is one tick to the right, it's 11111111.


Why did I go through all this? Well, using this information, the kernel could...
... set the volume (home, car, or both) to a predefined level on player startup, a feature that's been asked for elsewhere on the BBS
... tell the player to always (or never) boot into standby, regardless of the last state
... choose a predefined visualization, regardless of the last one selected
... choose a predefined info mode, regardless of the last one selected
... choose a predefined timecode setting

etc. etc. etc. Those are the most interesting applications I've thought of so far.

There are a LOT of bits that aren't shown, because I have no idea what they represent. The only ones I was able to find were settings I could easily change. Like, there are probably a lot of tuner-related settings that I couldn't do because I don't have a laptop to be connecting to my Empeg while it's in my car.

Anyway, I figured I'd share the fruits of my labor here. Hopefully this will aid in improvements to Hijack, and a better understanding of what info we can get from the player.


Attachments
48828-empeg_state.jpg (190 downloads)

_________________________
- Tony C
my empeg stuff