LittleSoundDj : RomStructure

 
[Note: This is technical information for people who are interested in writing their own software to modify samples in the LSDj ROM images]


How The Sample Kits Are Laid Out

Each sample kit is $4000 bytes long. The kits start at offset $20000 in the ROM image. All in all, there is space for 21 kits, of which the last 4 kits are reserved for the speech synthesizer.


Sample Kit Contents

Each sample kit can contain up to 15 samples.

When a kit is used, it is mapped to the memory area $4000-$7FFF...

ADDRESS CONTENT

$4000 $60
$4001 $40
$4002-$401F Sample end addresses *)
$4020 0
$4021 0
$4022-$404E Sample names **)
$404F 0
$4050-$4051 N / A
$4052-$4057 Kit name (6 chars)
$4058-$405B N / A
$405C Force Loop (1 bit/sample; samples 8–1) ***)
$405D Force Loop (samples 15–9 (MSB not used))
$405E-$405F N / A
$4060-$7FFF Sample data (4 bits/sample point @ 11468 Hz, in chunks of 16 bytes)

*)

The end addresses specify the address of the first byte after the sample. So if the first sample is laid over the area $4060-$473F, the end address is $4740. If the sample is not used, set the end address to 0.

The addresses are 16 bits long, stored in little-endian order (meaning: address $4250 should be stored as $5042 in memory).

**)

Each sample has a name of 3 chars. When entering a sample name with less than 3 chars, pad with '-'. For unused samples, fill in the sample name with null chars.

***)

The force loop bit is used for sample kits, so that some vocals can be looped automatically: for example “aaaaaaa”


contains some more information concerning Rom structure
http://wiki.howardforums.com/index.php/Understanding_ROM_Structure