This is the structure of the .sav file, produced by emulators and backup devices for storing the LSDJ song data.
This map is valid for v2.6.0... Earlier structure can be found at
Sav Structure Two Four Two
Bank 0:
0000–0FEF: phrases-> notes
0FF
0–108F: empty
10
90–128F: grooves
12
90–168F: song-> chainno
16
90–188F: tables-> envelope
1890–1DCF: instrument->speech->words ($20*42)
1DD
0–1E77: instr->speech->wordnames
1E
78–1E79: mem initialized flag (set to rb on init)
1E7A-1FB9: instr->names
Bank 1:
20
00–201F: empty
20
20–203F: table allocation table
20
40–207F: instr alloc table
20
80–287F: chains-> phraseno
28
80–307F: chains-> transposes
30
80–347F: instr->param
34
80–367F: tables-> transpose
36
80–387F: tables-> fx
3880–3A7F: tables-> fx val
3A
80–3C7F: tables-> fx 2
3C
80–3E7F: tables-> fx 2 val
3E
80–3E81: mem initialized flag (set to rb on init)
3E
82–3EA1: phrase allocation table
3EA
2–3EB1: chain allocation table
3EB
2–3FB1: softsynth params
3FB
2–3FB2: clock, hours
3FB
3–3FB3: clock, minutes
3FB
4–3FB4: tempo
3FB
5–3FB5: tune setting
3FB
6–3FB6: total clock, days
3FB
7–3FB7: total clock, hours
3FB
8–3FB8: total clock, minutes
3FB
9–3FB9: total clock, checksum (days+hours+minutes)
3FBA-3FBA: key delay
3FBB-3FBB: key repeat
3FBC-3FBC: font (for cgb)
3FBD-3FBD: sync setting
3FBE-3FBE: colorset
3FBF-3FBF: subsong mask [$f, $1f, $3f, $7f, $ff]
3FC
0–3FC0: clone (0=deep, 1=slim)
Bank 2:
4000–4FEF: phrases->fx
4FF
0–5FDF: phrases->fx val
Bank 3:
6000–6FFF: wave frames
7000–7FEF: phrases->instr
7FF
0–7FF2: mem initialized flag (set to rb on init)