Deep-Symmetry / crate-digger

Java library for fetching and parsing rekordbox exports and track analysis files.
Other
139 stars 18 forks source link

Add documentation for `*SETTING.DAT` files #24

Open Holzhaus opened 2 years ago

Holzhaus commented 2 years ago

The PIONEER directory contains these files:

These apparently allow the device to configure itself according to the preferences of the DJ that the plugged in device belongs to.

Some very basic reverse engineering of the format has been done here: https://github.com/Holzhaus/rekordcrate/pull/27/files#diff-811635f5c64ddc67c4db2a60451b9d96feec1542bb4728595586c7c51ff25003R17-R32

brunchboy commented 2 years ago

Thanks for sharing this information. If someone has time to create a pull request with new sections of the documentation covering these, it will be integrated more quickly. Otherwise, I will take a crack at it sometime when I am not behind on other projects and life in general. 😄

Holzhaus commented 2 years ago

I think i reversed most of the MYSETTING.DAT and MYSETTING2.DAT files. You can have a look at https://github.com/Holzhaus/rekordcrate/pull/32/files.

Basically, all of the SETTING.DAT files have the following structure: https://holzhaus.github.io/rekordcrate/rekordcrate/setting/struct.Setting.html

The actual meaning of the data depends on the file, but there are a lot of single-byte enums. Also, all used fields seem to be >= 0x80, so the first bit maybe indicate if a field contains data.

Holzhaus commented 2 years ago

Ok, DJMMYSETTING.DAT has been reverse-engineered as well. Only DEVSETTING.DAT is missing.

brunchboy commented 2 years ago

Nice, thanks for keeping me updated!

evanpurkhiser commented 2 years ago

Just saw your rust library @Holzhaus, awesome work on this. So great to see there's still so much of a community around reversing pioneers complicated file formats :)