Short: Mouse/autonomous Workbench plasma Author: ShK Uploader: shk sci fi Type: gfx/misc Version: 1.21 Replaces: gfx/misc/PlasmaWB.lha Requires: AmigaOS 3.1+, Picasso96; 68k: 68020+ and FPU; PPC: WarpOS Architecture: m68k-amigaos >= 3.1.0; ppc-warpup PlasmaWB is an interactive and autonomous plasma trail effect for AmigaOS Workbench. The program opens a resizable window on the Workbench public screen and renders a colourful glowing plasma trail. In normal mode the trail follows the mouse pointer. Version 1.21 adds five evolving autonomous motion modes that use the existing plasma trail, blur and presentation pipeline. Version 1.21 ships two binaries built from the same C source: PlasmaWB 68k (68020+ with FPU) PlasmaWB.ppc PowerPC (CyberStorm/Blizzard PPC with WarpOS) The animation is time-normalized: the trail moves and fades at the speed of the original effect on every machine. A fast PPC renders more frames of the same motion, while a slower 68k renders fewer. The final window update uses a Picasso96 off-screen bitmap, allowing a graphics board blitter to perform the scaling blit when the bitmap fits in board memory. Autonomous motion: Press A to cycle through: Lissajous Rose Spiro Orbit Harmono Off Pressing and holding A changes the mode only once. Release A and press it again to advance to the next mode. When an autonomous mode is active, real mouse coordinates are ignored. The autonomous paths use Q32 phase accumulators and the existing sine lookup table. No per-frame sin(), cos(), exp(), pow() or sqrt() calls are added to the render loop. The autonomous speed can be adjusted while a mode is active: Wheel up increase speed Wheel down decrease speed Hold middle button and move mouse up increase speed and move mouse down decrease speed The speed range is 25-400 percent. The initial speed is 100 percent. While autonomous motion is active, the window title shows the mode name, FPS and speed, for example: PlasmaWB 1.21 | Auto: Rose | FPS: 50 | Speed: 100% FPS is sampled about once per second by reusing the existing frame timer. Long stalls are discarded, preventing temporary 0 FPS readings. When autonomous motion is disabled, the title is: PlasmaWB 1.21 | Auto: Off Controls: Mouse move Draw the plasma trail when Auto is Off A Select the next autonomous mode Mouse wheel Adjust autonomous speed Hold MMB + move Adjust autonomous speed vertically Hold LMB Use a tighter trail spread R Clear and reseed at the current control position Q/Esc Quit Installation: Copy the PlasmaWB drawer anywhere. Start the 68k binary from its icon or Shell. PlasmaWB.ppc intentionally has no icon; start it from Shell. PlasmaWB: if started from Workbench, a stack of 102400 bytes is recommended. The program also contains a stack cookie for systems that honour it. PlasmaWB.ppc: no stack setting is needed. The program switches to an internal 128 KB PPC stack before doing any real work. Source code: The C source code and dual-target Makefile are included. Full build and inspection instructions are in README.txt inside the archive. Notes: PlasmaWB is intended for AmigaOS 3.x systems with Picasso96. The trail looks best in a 24-bit or 32-bit screen mode; 16-bit modes show some banding in the soft gradients. A screenshot is included in the archive. History: 1.00 First public release. 1.02 Added a Picasso96 off-screen bitmap presentation path. When the bitmap is placed in board memory, the final window update can use the graphics board blitter. The CPU-rendered plasma effect itself is unchanged. 1.10 The same source now builds both the 68k and WarpOS/PPC binaries. The animation is time-normalized, the trail rasterizer is faster, and the WarpOS binary manages its own PPC stack. 1.21 Added an autonomous mode and an A-key mode cycle: Lissajous, Rose, Spiro, Orbit, Harmono and Off. Added wheel and middle-button drag speed control, mode names and speed in the title, A-key repeat suppression, Intuition V47 extended-wheel input with a legacy RAWKEY fallback, and corrected the non-Lissajous motion scaling.