How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/ewrogers/megadev-skills --skill megadev-effectsBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
Megadev effects
Effects add feedback to the game's existing mechanics and art direction. Adapt these techniques to the user's brief; the Lab's lantern, weather, colors, sound and controls are illustrative.
- Read Pools and simulation for finite lifetimes,
deterministic timing, burst admission, pause and decorative degradation.
- Read Rendering and performance for resident tiles,
SAT/scanline budgets, presentation-only shake and one VBlank publisher.
- Read Validation for behavior tests, original-68000
execution, ARM64/AMD64 comparison, regional checks and measurement limits.
Use ewrogers/megadev:latest and inspect the selected image's source. Megadev exposes VDP and BIOS facilities; this skill's fx_* functions are application code, not a particle engine supplied by the SDK. Do not introduce SGDK's sprite, DMA queue, resource compiler or task APIs as Megadev calls.
Essential choices:
- Reserve room for gameplay and important impacts before decorative weather.
Bound particles, emission per update, simulation catch-up, submitted sprites, per-scanline work and bytes published. A finite pool alone is not a frame budget.
- Keep transient effects allocation-free when a fixed pool fits. Define the
full-pool behavior explicitly: reject, replace a less important effect, or reduce emission. Never evict gameplay entities to show decoration.
- Use the game's existing clock and input edge handling. Pause and slow motion
are deliberate policies; do not multiply speeds by the measured render FPS.
- Keep effect art resident where useful. Animate by choosing existing tiles;
account for remaining VRAM, palette and SAT costs even if no tiles are uploaded.
- Build an immutable frame snapshot outside interrupts. Submit through the
existing VDP owner, in a measured safe interval. Avoid active-display palette writes and unbounded work in a callback.
- Apply shake to camera presentation, not simulation positions or collision.
Keep HUD panels stable and restore scroll offsets when the envelope ends.
The standalone Effects Lab demonstrates these choices. scripts/create_project.py creates a fresh project without replacing files. Its separate burst/trail/weather pools and conservative H40 renderer are one policy, not mandatory capacities or an all-purpose sprite scheduler.
Reuse megadev-graphics for renderer integration and palette ownership, megadev-animation for gameplay animation events, megadev-gameplay for game rules, megadev-audio for the sound owner, and megadev-performance for broader profiling. Effects must not install competing VDP, drive, clock or audio owners.


