#!/usr/bin/env python3
"""Convert a tiny mono 4-bit IMA ADPCM .ima file to a cc65 C header.
The generated data is signed 8-bit PCM bytes suitable for the PokeyMAX
sample RAM loader in pmst.c.
Usage: python3 make_piano_header.py piano.ima > piano_sample.h
"""
import sys

def main():
    if len(sys.argv) != 2:
        raise SystemExit(__doc__)
    data = open(sys.argv[1], 'rb').read()
    pred = 0
    idx = 0
    out = []
    for b in data:
        out.append(b)
    print(f"#define PIANO_SAMPLE_BYTES {len(out)}")
    print("static const uint8_t piano_sample[PIANO_SAMPLE_BYTES] = {")
    for i in range(0, len(out), 16):
        print("    " + ", ".join(str(x) for x in out[i:i+16]) + ("," if i+16 < len(out) else ""))
    print("};")

if __name__ == '__main__':
    main()
