ngdevkit:nss

Last commit made on 2024-01-09
Get this branch:
git clone -b nss https://git.launchpad.net/ngdevkit

Branch merges

Branch information

Name:
nss
Repository:
lp:ngdevkit

Recent commits

1028dc2... by Damien Ciabrini

nullsound: new NSS opcodes for OPx output level

87c3b82... by Damien Ciabrini

nullsound: new NSS opcode for looping on stream end

c29b585... by Damien Ciabrini

NSS: add ADPCM-A and FM context opcodes

Currently ADPCM-A and FM opcodes (instrument, note on...) are
two bytes long and they include the action's target channel.

Optimize the space used by defining a 10 new CTX opcodes.
A CTX is a 1 byte opcode that defines the scope of the next
ADPCM-A or FM action.

ADPCM-A and FM have their own context of action. Each time
a ADPCM-A or FM opcode is evaluated, the according context
is incremented by 1, so that the scope of the next opcode
will automatically be the next ADPCM-A or FM channel.

This approach allows efficient NSS stream storage in ROM, and
will be reused when implementing the next NSS opcodes
like e.g. volume, detune...

The original ADPCM-A and FM opcodes are now deprecated and
will be replaced eventually.

844e0f5... by Damien Ciabrini

ngdevkit 0.4: new tools for VROM asset management

vromtool.py automatically packs ADPCM samples into one or more
VROMs, and generates ASM defines to export the samples positions
in VROM to the z80 sound driver.

furtool.py extracts the FM and ADPCM instruments define in a
of a Furnace module, and generate instrument data ready to be
consumed by nullsound NSS stream player. It also extract the
ADPCM samples from the Furnace module in a sample map that
can be consumed by vromtool.py to generate VROMs.

Bump ngdevkit version to 0.4.

f7675df... by Damien Ciabrini

adpcmtool: fix incorrect padding of ADPCM-A samples

When a WAV file is converted to ADPCM, adpcmtool automatically
pads it to a multiple of 512 samples so that the generated
ADPCM sample be a multiple of 256 bytes.
The padding is incorrect for ADPCM-A (it works for ADPCM-B), so
fix it accordingly.

1f287ac... by Damien Ciabrini

Support music playback via nullsound streams

This is a initial commit to play a music encoded in the nullsound stream
format (NSS), which is as a series of opcodes that can configure various
parts of the YM2610, wait for timers, and control music loop.

The NSS format is still considered experimental and will change in
future commits.

3a9d95d... by Damien Ciabrini

ADPCM-B support in nullsound and adpcmtool

New functions to support ADPCM-B playback, with looping
support and exclusive playback as in ADPCM-A.

Added decoding and encoding of ADPCM-B in adpcmtool.

33d0e4a... by Damien Ciabrini

nullsound: define all missing YM2610 registers

f81d93d... by Damien Ciabrini

Detect errors when calling make recursively

When building tools, we loop and call make recursively and
fail to react to track errors returned from those calls.
To fix that, force the shell targets to exit as soon as
they detect a submake failure.

6f4bae1... by Damien Ciabrini

Fix deps in README-linux

Ref #101