ngdevkit:nullsound_cmd_stream

Last commit made on 2023-12-14
Get this branch:
git clone -b nullsound_cmd_stream https://git.launchpad.net/ngdevkit

Branch merges

Branch information

Name:
nullsound_cmd_stream
Repository:
lp:ngdevkit

Recent commits

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

ab961dd... by Damien Ciabrini

Reimplementation of nullsound sound driver

Breaking change.

nullsound is now a z80 library that can be linked by users. The
sound commands are now implemented by the user, which just calls
a series of functions from the nullsound library.

nullsound internally is now much simpler. It provides simple actions
for trigerring immediate sounds; it manages a state tracker for every
part of the YM2610.

This rebuild prepares nullsound for managing interrupts and playback
of simple sound fx or music via VDM.

155bf1f... by Damien Ciabrini

Update toolchain dependencies in README.md

ddce2f5... by Damien Ciabrini

Update doc sections and CI script for M1 SoC

39214f1... by Damien Ciabrini

Fix .data2 LMA section overlapping with linkscript

The current linkscript doesn't specify LMA for sections as
they are not considered when an ELF is processed by objcopy.
However this might confuse ld when the objects are compiled
by a more recent compiler than gcc 5.5.

Fix LMA assignment by making .data, .data2 and .text consecutive.

Ref dciabrin/homebrew-ngdevkit#4

859fc94... by Damien Ciabrini

nullsound: z80 fixes for mame / real hardware

* Init didn't configure z80 ports appropriately [1] so NMI were not
received by the sound driver, and no sound was emitted on Mame.
This is likely the same issue on real hardware.

* Sound commands 01/03 didn't mute the ADPCMa channel correcly, this
one is fixed. More improvement will follow in another commit to mute
all channels (SSG, ADPCMa/b, FM).

* The write to YM2610 was unecessarily waiting for YM2610 status.
This is now changed in favour of busy waiting on Z80 to allow the
YM2610 to settle between writes. This follows the information from
neogeodev wiki [1], but could not be tested on real hardware. This is
working on Mame and GnGeo.

[1] https://wiki.neogeodev.org/index.php?title=Z80_port_map
[2] https://wiki.neogeodev.org/index.php?title=Z80/YM2610_interface

Closes #64