ngdevkit:master

Last commit made on 2024-04-22
Get this branch:
git clone -b master https://git.launchpad.net/ngdevkit

Branch merges

Branch information

Name:
master
Repository:
lp:ngdevkit

Recent commits

a28af22... by Damien Ciabrini

Fix doc on pygame install on macOS

pip3 now requires --break-system-packages

d1970c0... by Damien Ciabrini

nsstool: fix parsing of 'stop song' FX

f27efcf... by Damien Ciabrini

nullsound: ssg slide up and slide down effects

fcb6221... by Damien Ciabrini

nullsound: ssg vibrato effect

db83628... by Damien Ciabrini

nullsound: fix 8bit add optimization on external input

NSS opcode ssg_macro performs 8bit add on the instruments address,
which is a user input and does not have any alignment guarantee.
Do not optimze this 8bit addition.

282b95c... by Damien Ciabrini

Fix CI warning due to use of old github action

803e86a... by Damien Ciabrini

nullsound: refactor nss-ssg module

84f7014... by Damien Ciabrini

nullsound: switch to LSB addition for 16bits pointers

583f49a... by Damien Ciabrini

nullsound: check validity of 8bit pointer addition

In order to optimize speed and size of Z80 code, one can do
8bit addition on 16bit pointers, assuming the result of the addition
will not change the MSB of the pointer.
This works as long as nullsound data are linked appropriately in
the Z80 address space by using the right .bndry statements.

To verify that nullsound binaries have the expected boundary
properties, add a validating script that checks that data surrounded
by labels _state_XXX_start to _state_XXX_end are always allocated
by sdld to addresses with the same MSB.

c458df3... by Damien Ciabrini

nullsound: new NSS opcode to simulate auto-envelope

Furnace has a feature that reconfigures the SSG envelope based
on the current note's frequency and a configurable quotient
numerator/denominator. This maps into the YM2610's envelope
register.
We don't want to do math on the Z80 at runtime, so we have
to simulate this feature by precomputing the quotient prior
to playing the note at runtime.

Add a new opcode SSG_ENV_PERIOD that is inserted automatically
by nsstool.py in a new compilation pass.
This requires nsstool to know the autoenv configuration for the
instrument in use, so make nsstool parse the instrument section
of the Furnace module before generating NSS data.