Small "game" written in sjasmplus assembler, using Layer 2 for static background, HW sprites for player and enemies and ULA layer for score/etc. The project's git repository contains 12 "releases" adding functionality in steps, allowing you to study smaller change-set between each version. The final result is playable "game" (although very simple "tutorial-grade" one).
Example of NEX file creation with Zeus assembler
ZX Spectrum Next 320x192 image with 256 colour palette chosen from 512 colours (older project, created at times when Layer 2 had only 256x192 mode, and the extra image width is achieved by using sprites). (Zeus assembler source)
ScrollNutter demo from Rusty Pixels, including the assembler sources.
ScrollNutter demo remake in C (z88dk) by quietbloke