lp:ngdevkit

Owned by Damien Ciabrini
Get this repository:
git clone https://git.launchpad.net/ngdevkit

Import details

Import Status: Reviewed

This repository is an import of the Git repository at https://github.com/dciabrin/ngdevkit.git.

The next import is scheduled to run .

Last successful import was .

Import started on juju-98ee42-prod-launchpad-codeimport-4 and finished taking 15 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-4 and finished taking 15 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-1 and finished taking 15 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-0 and finished taking 15 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-5 and finished taking 25 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-5 and finished taking 10 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-4 and finished taking 30 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-4 and finished taking 15 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-1 and finished taking 15 seconds — see the log
Import started on juju-98ee42-prod-launchpad-codeimport-0 and finished taking 15 seconds — see the log

Branches

Name Last Modified Last Commit
fm-slide 2024-05-17 17:32:41 UTC
nullsound: fix vibrato effect crash

Author: Damien Ciabrini
Author Date: 2024-05-17 17:26:05 UTC

nullsound: fix vibrato effect crash

Save/restore registers properly during eval step

master 2024-05-17 17:32:41 UTC
nullsound: fix vibrato effect crash

Author: Damien Ciabrini
Author Date: 2024-05-17 17:26:05 UTC

nullsound: fix vibrato effect crash

Save/restore registers properly during eval step

fm-vibrato 2024-05-10 21:22:42 UTC
nullsound: FM vibrato effect

Author: Damien Ciabrini
Author Date: 2024-05-10 21:22:42 UTC

nullsound: FM vibrato effect

This commit includes a fairly big refactoring to share common parts
of the vibrato algo between FM and SSG.
It also includes updates to simplify the FM codebase.

ssg-slide 2024-04-22 16:13:02 UTC
Fix doc on pygame install on macOS

Author: Damien Ciabrini
Author Date: 2024-04-22 16:13:02 UTC

Fix doc on pygame install on macOS

pip3 now requires --break-system-packages

ssg-vibrato 2024-04-14 20:31:40 UTC
nullsound: ssg vibrato effect

Author: Damien Ciabrini
Author Date: 2024-04-14 20:31:40 UTC

nullsound: ssg vibrato effect

packed-ram 2024-04-01 17:00:00 UTC
Fix CI warning due to use of old github action

Author: Damien Ciabrini
Author Date: 2024-04-01 15:19:37 UTC

Fix CI warning due to use of old github action

s_env 2024-03-30 14:32:16 UTC
nullsound: new NSS opcode to simulate auto-envelope

Author: Damien Ciabrini
Author Date: 2024-03-30 14:32:16 UTC

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.

msys2-pacman-ci 2024-03-18 20:12:23 UTC
CI: tweak MSYS2 package download to avoid timeout

Author: Damien Ciabrini
Author Date: 2024-03-18 20:12:23 UTC

CI: tweak MSYS2 package download to avoid timeout

The ngdevkit packages are hosted on github pages, and the throughput
between this hosting location and github CI runner seem to fluctuate,
which sometimes causes pacman to timeout when installing packages,
and prevent the build of nightly packages.

Disable timeout checks in pacman to give CI runner a chance to install
MSYS2 packages even when it's temporarily slow.

nsstool 2024-03-18 17:47:09 UTC
nullsound: new tool to convert Furnace modules into NSS streams

Author: Damien Ciabrini
Author Date: 2024-03-12 21:44:06 UTC

nullsound: new tool to convert Furnace modules into NSS streams

nsstool.py is the tool that convert Furnace modules into a
precompiled and optimized NSS bytestream that can be played back
at runtime by nullsound.

nsstool.py relies on furtool.py to provide the necessary data
for instruments and samples.

This commit provides the necessary convertion passes to play
the FM, SSG and ADPCM notes from a Furnace module, with their
associated instrument definition.

Other commits should follow to support more Furnace features
(note volumes, more effects...)

nss-pitch-op 2024-01-23 20:52:44 UTC
nullsound: new NSS opcodes for FM pitch (detune)

Author: Damien Ciabrini
Author Date: 2024-01-23 20:52:44 UTC

nullsound: new NSS opcodes for FM pitch (detune)

nss 2024-01-09 20:34:21 UTC
nullsound: new NSS opcodes for OPx output level

Author: Damien Ciabrini
Author Date: 2024-01-09 20:31:28 UTC

nullsound: new NSS opcodes for OPx output level

deb 2024-01-04 17:44:14 UTC
Add pyyaml dependency for the upcoming sound tools

Author: Damien Ciabrini
Author Date: 2024-01-04 17:44:14 UTC

Add pyyaml dependency for the upcoming sound tools

nullsound_cmd_stream 2023-12-14 09:15:53 UTC
Support music playback via nullsound streams

Author: Damien Ciabrini
Author Date: 2023-11-14 21:25:17 UTC

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.

mk-error 2023-12-13 21:29:07 UTC
Detect errors when calling make recursively

Author: Damien Ciabrini
Author Date: 2023-12-13 21:29:07 UTC

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.

nullsound-0.2.0 2023-09-15 08:39:48 UTC
Reimplementation of nullsound sound driver

Author: Damien Ciabrini
Author Date: 2023-06-30 15:55:03 UTC

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.

macosm1 2023-09-11 06:54:04 UTC
Update doc sections and CI script for M1 SoC

Author: Damien Ciabrini
Author Date: 2023-09-11 06:44:35 UTC

Update doc sections and CI script for M1 SoC

issues/64 2023-06-06 20:54:17 UTC
nullsound: z80 fixes for mame / real hardware

Author: Damien Ciabrini
Author Date: 2023-06-06 20:54:17 UTC

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

msys2-refactor 2023-05-26 14:52:15 UTC
msys2: Update build and docs to target ucrt64

Author: Damien Ciabrini
Author Date: 2023-05-26 14:52:15 UTC

msys2: Update build and docs to target ucrt64

Nightly CI deprecated mingw64 packages in favour of ucrt64
package. Update the source build steps and documentation to
drop mingw support and only provide msys2/ucrt64 support.

Ref #94

ucrt64 2023-05-17 09:17:21 UTC
msys2: move CI build to ucrt64 subsystem

Author: Damien Ciabrini
Author Date: 2023-05-17 08:03:23 UTC

msys2: move CI build to ucrt64 subsystem

Ref dciabrin/ngdevkit#92

bramfix 2023-02-18 11:08:10 UTC
Fix linking when backup RAM is used

Author: Damien Ciabrini
Author Date: 2023-02-18 11:02:31 UTC

Fix linking when backup RAM is used

Follow-up fix of linkscript after [1]. The linkscript
incorrectly relies on lazy evaluation to computes the
start of the .bss segment in RAM, leaving all linked
symbols incorrectly shifted in memory.

Re-work the backup RAM definition in the linkscript
with a proper MEMORY command, and expose macros in
the ngdevkit API to override the start and length of
the backup RAM at link-time.

Closes #86

[1] 4ccd470cd0039fbaf18e7f915f45d0d36d5e09d5

bankswitch 2022-11-27 12:21:35 UTC
Initial support for P-ROM bank-switching

Author: Damien Ciabrini
Author Date: 2022-11-27 12:16:32 UTC

Initial support for P-ROM bank-switching

New API to map a specific chunk of the the second P-ROM into the
P-ROM2 memory address space at runtime (0x200000..0x2fffff).

To support bank-switching transparently, the order in which the
ELF sections are linked is modified: the devkit's code is always
linked in the first P-ROM, as well as all data. The user code
gets linked last, and all files whose path contain the substring
`__bank` get implicitly linked in the second P-ROM.

Closes #81

large-rom 2022-11-03 10:49:23 UTC
Support for large and non-contiguous P-ROM

Author: Damien Ciabrini
Author Date: 2022-11-03 10:49:23 UTC

Support for large and non-contiguous P-ROM

This changes the way the program ROM are linked. The
BRAM, BSS and RAM segments go first, the code itself being
linked at the very end of the P-ROM adress space.

The linker now allows the full 1MiB address space for
large P-ROM, as well as 2MiB non-contiguous P-ROM (2x1MiB).

This is a breaking change, the .text sections in the output
ELF file are no longer padded automatically. You now need to
add the proper padding when extracting code with objcopy.
dciabrin/ngdevkit-examples@03c250a0ee55bb05501a79ebb4c9401217d9959d
has been updated to implement padding appropriately.

Ref dciabrin/ngdevkit#78

issues/70 2021-12-25 14:21:54 UTC
Ability to configure backup RAM segment in ROM

Author: Damien Ciabrini
Author Date: 2021-12-25 14:21:54 UTC

Ability to configure backup RAM segment in ROM

A new section in ngdevkit linkscript and an associated
C macro allows variables to be stored in a location that
gets automatically saved to backup RAM on MVS.

Closes #70

credits-aes 2021-08-21 11:05:07 UTC
nullbios: fix credit management and AES

Author: Damien Ciabrini
Author Date: 2021-08-21 11:05:07 UTC

nullbios: fix credit management and AES

Fix the AES start_status check after the implementation of
credit management for 2 players.

Fix an invalid shift for credit checks in the MVS case.

Ref dciabrin/ngdevkit-examples#7

credits-2up 2021-08-19 20:34:57 UTC
nullbios: credits management for 2 players

Author: Damien Ciabrini
Author Date: 2021-08-19 20:34:06 UTC

nullbios: credits management for 2 players

Ref dciabrin/ngdevkit-examples#7

issues/51 2021-08-16 17:48:23 UTC
Make memory-mapped registers volatile in C headers

Author: Damien Ciabrini
Author Date: 2021-08-16 17:46:23 UTC

Make memory-mapped registers volatile in C headers

As we don't want the compiler to optimize away reads or writes
to those addresses.

Closes #51

readme-all-platforms 2021-05-14 12:29:15 UTC
Update documentation to detail how to install packages on MSYS2.

Author: Damien Ciabrini
Author Date: 2021-05-14 10:17:49 UTC

Update documentation to detail how to install packages on MSYS2.

Split the documentation in dedicated files for each platform.

msys2-build 2021-04-29 15:15:19 UTC
CI: add MSYS2 test and packaging

Author: Damien Ciabrini
Author Date: 2021-04-29 12:54:22 UTC

CI: add MSYS2 test and packaging

msys2 2021-03-25 16:55:06 UTC
Initial support for MSYS2 - native devkit for Windows

Author: Damien Ciabrini
Author Date: 2021-03-23 14:51:39 UTC

Initial support for MSYS2 - native devkit for Windows

gngeo-clang 2021-03-03 14:52:00 UTC
clang: ensure gngeo's autoconf script can detect opengl

Author: Damien Ciabrini
Author Date: 2021-03-03 14:52:00 UTC

clang: ensure gngeo's autoconf script can detect opengl

github-ci 2021-03-01 13:57:29 UTC
CI: migration to github actions

Author: Damien Ciabrini
Author Date: 2021-03-01 13:16:46 UTC

CI: migration to github actions

soft_dip 2021-01-22 17:36:49 UTC
Helper macros to generate and access sofware DIP configuration

Author: Damien Ciabrini
Author Date: 2021-01-22 17:36:49 UTC

Helper macros to generate and access sofware DIP configuration

This introduces a breaking change in symbol names used for the
DIP pointers (rom_info_EU -> dip_eu_rom).

libngdevkit 2020-12-13 20:12:20 UTC
Populate header file and provide helper library

Author: Damien Ciabrini
Author Date: 2020-12-11 21:39:11 UTC

Populate header file and provide helper library

runtime-lib 2020-12-08 21:11:24 UTC
Split libsyscall's functions into independent files

Author: Damien Ciabrini
Author Date: 2020-12-08 20:15:19 UTC

Split libsyscall's functions into independent files

This allows ld to only link the function used and will prepare the
migration to a more recent, c99-compliant, newlib version.

nullsound 2020-12-02 21:54:35 UTC
Make nullsound a real modular sound driver

Author: Damien Ciabrini
Author Date: 2020-12-02 20:42:29 UTC

Make nullsound a real modular sound driver

Each user can configure its own variant of nullsound, with its own set
of exported sound command, like e.g. "play a sample", "start a music",
"fade volume"...

The sound driver itself is now a sort of cooperative scheduler,
configured to handle a number of concurrent sound actions. Each sound
action gets called by the driver to update its local state, and then
yield execution so the next action can be scheduled.

As a first commit, the driver supports playing ADPCM-a samples. Other
modules such as music playback can be added in subsequent commits.

Closes #16

ci-macos 2020-05-30 10:56:21 UTC
Add macOS CI job

Author: Damien Ciabrini
Author Date: 2020-05-30 10:56:21 UTC

Add macOS CI job

travis-cd 2019-12-21 23:20:55 UTC
Update Launchpad deploy token

Author: Damien Ciabrini
Author Date: 2019-12-21 23:20:55 UTC

Update Launchpad deploy token

standalone 2019-12-01 13:48:58 UTC
Update README to reference deb packages for Ubuntu/Debian

Author: Damien Ciabrini
Author Date: 2019-12-01 13:48:58 UTC

Update README to reference deb packages for Ubuntu/Debian

bug/isl-depend 2019-10-06 18:58:24 UTC
Add missing dependency in READMEs

Author: Damien Ciabrini
Author Date: 2019-10-06 18:58:24 UTC

Add missing dependency in READMEs

139 of 39 results
This repository contains Public information 
Everyone can see this information.

Subscribers