katana-dev / lib-katana

Go library for Boss Katana management tasks.
GNU General Public License v3.0
16 stars 2 forks source link

Deduplicating TSL data #7

Open Beanow opened 7 years ago

Beanow commented 7 years ago

The TSL format includes some duplicate data. For example 2 byte values are split into three keys:

Strings have a normal string representation as well as 20 individual character keys. The effect chain has several representations as well.

I'm wondering how we should handle these. Here are some alternatives.

  1. Choose one and ignore the rest when reading.
  2. Define a preference order and use the lesser ones as fallback when reading.
  3. Read every one and produce errors if they are inconsistent. Using a preference order like 2, letting the implementer choose whether to ignore errors.

None of these are particularly elegant. Perhaps analyzing how BTS handles this we may be able to deprecate some of these keys and find what the canonical keys should be.

Beanow commented 7 years ago

Patch name

FloorBoard uses params.patch_name1...16 to source the name. Other values are discarded.

BTS uses name, which is mandatory to load the TSL file. Other values are discarded.

Beanow commented 7 years ago

Fx Chain

FloorBoard uses params.fx_chain_position1...20 to get the chain order. Other values are discarded.

BTS uses params.chain_ptn which restricts the chain to the official 3 chain orders. Other values are discarded.