<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Photonamus Industries Forums - All Forums]]></title>
		<link>https://forum.photonamus.com/</link>
		<description><![CDATA[Photonamus Industries Forums - https://forum.photonamus.com]]></description>
		<pubDate>Wed, 30 Sep 2026 02:24:42 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[News [9/15/2026]]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=66</link>
			<pubDate>Tue, 15 Sep 2026 15:12:25 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=66</guid>
			<description><![CDATA[━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
Development paused.<br />
─── ◆ ───<br />
I paused development of the site/forum. I am currently learning some things and may even redesign the site one more time. We are setting up a database for agents. This will integrate to the webserver but not really be a visible part of it for actual human users. This is meant for agents to access through x402. I have new ideas for how to structure the site and will more than likely be restructuring it one more time. The forums will be changing and so will the matrix chat. The radio and IRC may both go away. I think a lot will change by the time I am finished.<br />
─── ◆ ───<br />
No ETA on when this will be happening like I said I am in the middle of picking up some new skills here. Once I get done the site will get another make over.<br />
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></description>
			<content:encoded><![CDATA[━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
Development paused.<br />
─── ◆ ───<br />
I paused development of the site/forum. I am currently learning some things and may even redesign the site one more time. We are setting up a database for agents. This will integrate to the webserver but not really be a visible part of it for actual human users. This is meant for agents to access through x402. I have new ideas for how to structure the site and will more than likely be restructuring it one more time. The forums will be changing and so will the matrix chat. The radio and IRC may both go away. I think a lot will change by the time I am finished.<br />
─── ◆ ───<br />
No ETA on when this will be happening like I said I am in the middle of picking up some new skills here. Once I get done the site will get another make over.<br />
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[News [9/9/2026]]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=65</link>
			<pubDate>Wed, 09 Sep 2026 06:35:59 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=65</guid>
			<description><![CDATA[<div style="text-align: left;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
Finally slowing down on the updates some. Still more coming though. Tonight the work includes adding a site button to the forums so you can return to the website from here. Fixing the user cp/edit options page in mobile view. Adding analytics tacking to the forums to track page analytics also adding this to the site side as well. We will be able to capture a full view of the traffic across the platform this way. We are adding in seo/indexing for the launch so that the site/forums get picked up by search engines and can be found with a simple search. The servers have all gotten a complete security/maintenance pass and are working fantastic.<br />
<div style="text-align: center;" class="mycode_align"><div style="text-align: left;" class="mycode_align">─── ◆ ───</div>
</div>
We have the site button live on the forum. You can see it at the top of the preview image below next to portal. We also have a fix for the user cp/edit options page on mobile the preview image is a full shot of the page it is not linear and scrolls in a straight line. This fixes options being shown off screen. Analytics are live across the forums and we can track statistics on it now too.<br />
─── ◆ ───<br />
<div style="text-align: left;" class="mycode_align"><a href="https://photonamus.com/images/photonamus/Mobile-View-Fix.png" target="_blank" rel="noopener" class="mycode_url"><img src="https://photonamus.com/images/photonamus/Mobile-View-Fix.png" loading="lazy"  width="270" height="1944" alt="[Image: Mobile-View-Fix.png]" class="mycode_img" /></a></div>
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></description>
			<content:encoded><![CDATA[<div style="text-align: left;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
Finally slowing down on the updates some. Still more coming though. Tonight the work includes adding a site button to the forums so you can return to the website from here. Fixing the user cp/edit options page in mobile view. Adding analytics tacking to the forums to track page analytics also adding this to the site side as well. We will be able to capture a full view of the traffic across the platform this way. We are adding in seo/indexing for the launch so that the site/forums get picked up by search engines and can be found with a simple search. The servers have all gotten a complete security/maintenance pass and are working fantastic.<br />
<div style="text-align: center;" class="mycode_align"><div style="text-align: left;" class="mycode_align">─── ◆ ───</div>
</div>
We have the site button live on the forum. You can see it at the top of the preview image below next to portal. We also have a fix for the user cp/edit options page on mobile the preview image is a full shot of the page it is not linear and scrolls in a straight line. This fixes options being shown off screen. Analytics are live across the forums and we can track statistics on it now too.<br />
─── ◆ ───<br />
<div style="text-align: left;" class="mycode_align"><a href="https://photonamus.com/images/photonamus/Mobile-View-Fix.png" target="_blank" rel="noopener" class="mycode_url"><img src="https://photonamus.com/images/photonamus/Mobile-View-Fix.png" loading="lazy"  width="270" height="1944" alt="[Image: Mobile-View-Fix.png]" class="mycode_img" /></a></div>
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Creative Toolchain Package - Volume 1]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=64</link>
			<pubDate>Wed, 09 Sep 2026 05:38:19 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=64</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Creative Toolchain Package — Volume 1</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Eight context documents covering the open-source creative stack from pixel art to 3D rendering<br />
Load them into your AI assistant and get real answers instead of hallucinated menus</span></span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
This package is a set of context documents designed to give an AI assistant deep, working knowledge of eight creative applications. Not surface-level summaries — full interface references, tool lists, keyboard shortcuts, settings locations, rendering configs, file format support, and the kind of detail that turns "I think that setting is somewhere in preferences" into an actual answer.<br />
<br />
Every document follows the same structure: what the software is, what changed in the current version, complete interface and tool breakdowns, workflow-relevant settings, performance notes for real hardware, and pipeline integration guidance. They're written to be pasted into a conversation or attached as context files. The AI reads the document, and then it knows where things are instead of guessing.<br />
<br />
The scope is a full open-source creative production stack — 2D art, vector graphics, image editing, pixel art, video editing, screen recording, and 3D. Everything here runs on Linux. Some of it runs on Windows and macOS too. The package covers the latest stable versions as of mid-2026.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What's in the Package</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Eight context documents:</span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Blender 5.0.1:</span> 3D modeling, sculpting, animation, rendering, compositing, video editing — the full suite.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">GIMP 3.2.2:</span> Raster image editing, photo retouching, color correction, batch processing, non-destructive filters.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Inkscape 1.4:</span> Vector graphics — SVG native, path operations, Live Path Effects, trace bitmap, tiled clones.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Kdenlive 26.08:</span> Non-linear video editing — multi-track timeline, effects, color grading, speech-to-text, multi-cam.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Krita 6.0.1:</span> Digital painting, illustration, 2D animation, brush engine deep-dive, AI diffusion integration.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">OBS Studio 32.2:</span> Screen recording and live streaming on Linux — PipeWire, Wayland capture, encoding setup.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">PixiEditor 2.1:</span> Pixel art, raster painting, vector, and animation with a node graph engine underneath.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Pro Motion NG V8:</span> Indexed-color pixel art and sprite animation in the Deluxe Paint tradition — tile maps, color cycling, palette constraints.<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">How to Use These</span></span><br />
<br />
Grab the zip attached to this post. Each document is a standalone markdown file. Pick the one that matches the tool you're working with and load it into your AI conversation — paste the contents, attach the file, or drop it into a project as a reference document. The AI will then have accurate, version-specific knowledge of the interface, tools, settings, and workflows instead of relying on training data that may be years out of date.<br />
<br />
These pair well with each other. Working on a game art pipeline? Load Pro Motion NG and PixiEditor together. Doing a video project? Load Kdenlive and OBS. Need to go from 2D concept to 3D model? Load Krita and Blender. The documents are sized to fit comfortably in modern context windows individually, and most combinations of two or three will fit together.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Blender 5.0.1</span></span><br />
<br />
The everything-machine for 3D. This document covers the 5.0 release — geometry nodes overhaul, node-based modifiers, native ACES color management, Cycles adaptive subdivision out of experimental, EEVEE hair rendering rewrite, and the new UV editing system. The reference walks through every mode (Object, Edit, Sculpt, Vertex Paint, Weight Paint, Texture Paint, Pose, Particle Edit), the full Properties Editor tab-by-tab, all node systems (Shader, Geometry, Compositing), the modifier stack, render engine differences, add-on management, and performance tuning.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Modeling, sculpting, animation, rigging, simulation, rendering (Cycles + EEVEE), compositing, motion tracking, video editing, Grease Pencil 2D animation, geometry nodes, file formats, Linux resource paths.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Blender-5_0_1-Context.md

Version:  5.0.1 (December 2025 patch; base release November 2025)
Platform:  Linux (native), Windows, macOS
License:  GPL-2.0-or-later

Sections:
  - What Is Blender 5.0 / What's New in 5.0
  - Interface Architecture
  - Modes — Blender's Modal System
  - Properties Editor — Tab-by-Tab Reference
  - Essential Keyboard Shortcuts
  - Render Engines (Cycles, EEVEE, Workbench)
  - Node Systems (Shader, Geometry, Compositing)
  - Modifier System
  - Add-on / Extension System
  - AI Integration
  - Performance on Your Hardware
  - File Formats
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">GIMP 3.2.2</span></span><br />
<br />
The first major GIMP release in seven years rewrote nearly everything under the hood — GTK3 port, proper HiDPI scaling, native Wayland support, non-destructive filters, multi-layer selection, and the death of floating selections. This document covers both the 3.0 foundational changes and the 3.2 additions, with a complete tool list, dockable dialog reference, layer system breakdown, color management setup, the Python 3 scripting system, and a Photoshop-to-GIMP translation table for anyone crossing over.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Raster editing, photo retouching, non-destructive filter workflows, layer management, color profiles, scripting and plugins, batch processing, format support, and where GIMP fits alongside Krita in a production pipeline.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>GIMP-3_2_2-Context.md

Version:  3.2.2 (March 2026; latest stable 3.2.4, April 2026)
Platform:  Linux (GTK3, native Wayland), macOS, Windows
License:  GPL-3.0+

Sections:
  - What Changed: GIMP 3.x vs 2.10
  - Interface Architecture
  - The Toolbox — Complete Tool List
  - Dockable Dialogs — GIMP's Panel System
  - Essential Keyboard Shortcuts
  - Non-Destructive Filters (GIMP 3.0+)
  - Layer System
  - Color Management
  - Scripting &amp; Plugin System
  - Performance Optimization for Your Hardware
  - Photoshop-to-GIMP Translation
  - File Format Support
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"
  - Krita vs GIMP — When to Use Each</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Inkscape 1.4</span></span><br />
<br />
The leading open-source vector editor, SVG-native. This document covers the 1.4 "Geek Edition" series through the 1.4.4 maintenance release, with notes on the incoming 1.5 GTK4 port. Full reference for the toolbox, dialog system, Live Path Effects for non-destructive path modification, Trace Bitmap for vectorizing raster images, the tiled clones system, extensions, SVG filters, and pipeline integration with the rest of the stack.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Vector drawing and editing, SVG authoring, path operations, boolean operations, LPEs, bitmap tracing, clones, extensions, color management, format support, and Illustrator-to-Inkscape translation.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Inkscape-1_4-Context-Doc.md

Version:  1.4.4 (May 2026; latest stable)
Platform:  Linux (GTK3), Windows, macOS, FreeBSD
License:  GPL-2.0-or-later
Native:    SVG (Scalable Vector Graphics)

Sections:
  - What Is Inkscape / Version Status
  - Interface Architecture
  - The Toolbox — Complete Tool List
  - Dialogs — The Panel System
  - Essential Keyboard Shortcuts
  - Live Path Effects (LPEs)
  - Trace Bitmap — Vectorizing Raster Images
  - Clones and Tiled Clones
  - Extensions System
  - Filters (SVG Filters)
  - Color Management
  - File Format Support
  - Performance Notes for Your Hardware
  - Photoshop/Illustrator → Inkscape Translation
  - Pipeline Integration</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kdenlive 26.08</span></span><br />
<br />
The most feature-complete non-linear video editor in the Linux ecosystem. This document covers the 26.08 release — drag-and-drop track reordering, gap markers, multi-clip speed changes, document patch versioning — along with highlights from the 25.12 and 26.04 releases that brought AI-powered object segmentation, rewritten OpenTimelineIO support, and fullscreen monitor mirroring. Complete reference for timeline editing, effects and filters, transitions, title creation, speech-to-text, multi-cam workflows, rendering profiles, and hardware-accelerated encoding.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Multi-track video editing, 3-point editing, proxy workflows, keyframe animation, nested sequences, color correction with scopes, audio mixing, effects (MLT/FFmpeg/frei0r/LADSPA), rendering, and performance tuning.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Kdenlive-Context.md

Version:  26.08.0 (August 2026; latest stable)
Platform:  Linux (KDE/Qt), Windows, macOS
License:  GPL-3.0-or-later
Built on:  MLT Framework, FFmpeg, frei0r, LADSPA

Sections:
  - What Is Kdenlive / Release Cycle / Recent Highlights
  - Interface Architecture
  - Settings / Preferences
  - Timeline Editing
  - Essential Keyboard Shortcuts
  - Effects and Filters
  - Transitions and Compositions
  - Titles and Graphics
  - Speech to Text
  - Multi-Cam Editing
  - Rendering (Export)
  - AI Features
  - File Formats
  - Performance for Your Hardware
  - Resource Locations (Linux)</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Krita 6.0.1</span></span><br />
<br />
The digital painting and illustration powerhouse. This document covers the 6.0 Qt6 port alongside the parallel 5.3 Qt5 branch — same features, different toolkit underneath. Includes the full brush engine deep-dive (pixel, color smudge, shape, quick, clone, deform, tangent normal, and more), the complete docker reference where most of Krita's power actually lives, workspace customization, the filter system, layer types and blending, Python scripting, AI Diffusion plugin integration, and the Pop-up Palette system.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Digital painting, illustration, concept art, 2D animation, brush system architecture, layer management, filter workflows, drawing assistants, scripting, AI generation, format support, and performance optimization.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Krita-6_0_1-Context.md

Version:  6.0.1 (March 2026; stable production branch is 5.3.2.1)
Platform:  Linux (Ubuntu Studio), macOS, Windows
License:  GPL-3.0

Sections:
  - What Is Krita 6.0 vs 5.3
  - Interface Architecture
  - Dockers — The Deep Settings Layer
  - Workspace Customization
  - Essential Keyboard Shortcuts
  - Brush System Deep Dive
  - Settings Deep Dive — Where Everything Lives
  - Filters (Built-in)
  - Layer System
  - Python Scripting &amp; Plugin System
  - AI Integration — Krita AI Diffusion
  - File Format Support
  - Performance Optimization for Your Hardware
  - Pop-up Palette (Right-Click Menu)
  - Drawing Assistants</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">OBS Studio 32.2</span></span><br />
<br />
The standard for screen recording and live streaming, configured for Linux. This document is specifically tuned for a PipeWire + Wayland + AMD setup — it covers the Linux screen capture situation (what works, what doesn't, and why), PipeWire audio integration, the full source type list, encoding settings optimized for real hardware, filter chains, scene composition workflows, the plugin ecosystem, virtual camera setup, and the distinction between profiles and scene collections.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Screen recording, live streaming, scene composition, video encoding (x264, VAAPI, AMF), audio mixing, source types, filters, plugins, virtual camera, PipeWire/Wayland-specific configuration, and hardware-matched encoding profiles.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>OBS-Studio-Linux-Context.md

Version:  32.2.2 (August 2026; latest stable)
Platform:  Linux (X11 and Wayland), Windows, macOS
License:  GPL-2.0
Target:    Ubuntu Studio 26.04 LTS, KDE Plasma 6, PipeWire, AMD RX 580

Sections:
  - What Is OBS Studio
  - Installation on Ubuntu Studio 26.04
  - The Linux Screen Capture Situation (Critical)
  - Audio on Linux — PipeWire Integration
  - Interface Layout
  - Source Types (Complete List)
  - Encoding Settings for Your Hardware
  - Keyboard Shortcuts (Hotkeys)
  - Filters (Per-Source and Per-Audio)
  - Scenes &amp; Sources — Workflow
  - Plugins &amp; Extensions
  - Virtual Camera
  - Profiles &amp; Scene Collections
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">PixiEditor 2.1</span></span><br />
<br />
A fast-moving project that started as a pixel art editor and evolved into a universal 2D editor with a node graph engine running underneath everything. Version 2.1 added a node-based brush engine, sub-pixel precision painting, tablet support, smart layers, and stabilizers. The document covers the three-toolset system (Drawing, Vector, Adjustments), the full node graph with every built-in node listed, the layer and color systems, frame-by-frame animation, the extension browser, and how it fits into a game asset pipeline alongside the other tools in this package.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Pixel art, raster painting, vector graphics, animation, node-based procedural generation, custom shaders, spritesheet export, extension system, and game asset pipeline integration.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>PixiEditor-2_1-Context.md

Version:  2.1.2.2 (August 2026; latest stable)
Platform:  Windows, macOS, Linux (AvaloniaUI)
License:  LGPL v3 (free and open-source; paid Steam version funds development)
Built with: C#, AvaloniaUI, SkiaSharp

Sections:
  - What Is PixiEditor / Version History
  - Interface Architecture
  - The Toolset System (Drawing, Vector, Adjustments)
  - Tools by Toolset
  - The Node Graph
  - Layer System
  - Color System
  - Animation
  - File Formats
  - Extension System
  - Keyboard Shortcuts
  - Performance Notes for Your Hardware
  - Pipeline Integration
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Pro Motion NG V8</span></span><br />
<br />
A pixel art and sprite animation editor built in the Deluxe Paint tradition — indexed color mode, palette-first workflows, and the "grab pixels as a brush" paradigm that replaced conventional selections. This is the tool professionals at Yacht Club Games, WayForward, and Sega have used for hardware-accurate retro art. The document covers the conceptual shift from modern editors, Linux compatibility via bundled Wine, the full toolbox, all 25+ paint modes, the indexed palette system with per-hardware constraints (C64, NES, SNES, Game Boy), tile map creation, animation, pattern drawing, bitmap fonts, and how Pro Motion and PixiEditor complement each other in a pipeline.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Indexed-color pixel art, sprite animation, tile map editing, color cycling, halftone dithering, palette constraints, Deluxe Paint workflow concepts, Linux/Wine setup, and pipeline integration with PixiEditor and the broader stack.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ProMotionNG-V8-Context-Doc.md

Version:  8.0.11.x (V8 series, actively maintained)
Platform:  Windows native; Linux/macOS via bundled Wine
License:  Proprietary, &#36;39 one-time purchase (Free Edition available)
Developer: Jan Zimmermann / Cosmigo, Germany

Sections:
  - What Is Pro Motion NG / The Deluxe Paint Lineage
  - Linux Compatibility
  - Interface Architecture
  - The Toolbox — Drawing Tools
  - Paint Modes (25+ Modes)
  - Color System — Indexed Palettes
  - Layer System
  - Animation System
  - Tile Map System
  - Pattern Drawing (Seamless Textures)
  - Bitmap Fonts
  - Selections and Transformations
  - Key Keyboard Shortcuts
  - Preferences Deep Dive
  - Plugin System</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-style: italic;" class="mycode_i">Creative Toolchain Package — Volume 1. Built for PhotonamusWeb by Photonamus.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=16" target="_blank" title="">Creative_Tool_Chain_Package-Volume_1.zip</a> (Size: 79.77 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Creative Toolchain Package — Volume 1</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Eight context documents covering the open-source creative stack from pixel art to 3D rendering<br />
Load them into your AI assistant and get real answers instead of hallucinated menus</span></span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
This package is a set of context documents designed to give an AI assistant deep, working knowledge of eight creative applications. Not surface-level summaries — full interface references, tool lists, keyboard shortcuts, settings locations, rendering configs, file format support, and the kind of detail that turns "I think that setting is somewhere in preferences" into an actual answer.<br />
<br />
Every document follows the same structure: what the software is, what changed in the current version, complete interface and tool breakdowns, workflow-relevant settings, performance notes for real hardware, and pipeline integration guidance. They're written to be pasted into a conversation or attached as context files. The AI reads the document, and then it knows where things are instead of guessing.<br />
<br />
The scope is a full open-source creative production stack — 2D art, vector graphics, image editing, pixel art, video editing, screen recording, and 3D. Everything here runs on Linux. Some of it runs on Windows and macOS too. The package covers the latest stable versions as of mid-2026.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What's in the Package</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Eight context documents:</span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Blender 5.0.1:</span> 3D modeling, sculpting, animation, rendering, compositing, video editing — the full suite.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">GIMP 3.2.2:</span> Raster image editing, photo retouching, color correction, batch processing, non-destructive filters.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Inkscape 1.4:</span> Vector graphics — SVG native, path operations, Live Path Effects, trace bitmap, tiled clones.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Kdenlive 26.08:</span> Non-linear video editing — multi-track timeline, effects, color grading, speech-to-text, multi-cam.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Krita 6.0.1:</span> Digital painting, illustration, 2D animation, brush engine deep-dive, AI diffusion integration.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">OBS Studio 32.2:</span> Screen recording and live streaming on Linux — PipeWire, Wayland capture, encoding setup.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">PixiEditor 2.1:</span> Pixel art, raster painting, vector, and animation with a node graph engine underneath.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Pro Motion NG V8:</span> Indexed-color pixel art and sprite animation in the Deluxe Paint tradition — tile maps, color cycling, palette constraints.<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">How to Use These</span></span><br />
<br />
Grab the zip attached to this post. Each document is a standalone markdown file. Pick the one that matches the tool you're working with and load it into your AI conversation — paste the contents, attach the file, or drop it into a project as a reference document. The AI will then have accurate, version-specific knowledge of the interface, tools, settings, and workflows instead of relying on training data that may be years out of date.<br />
<br />
These pair well with each other. Working on a game art pipeline? Load Pro Motion NG and PixiEditor together. Doing a video project? Load Kdenlive and OBS. Need to go from 2D concept to 3D model? Load Krita and Blender. The documents are sized to fit comfortably in modern context windows individually, and most combinations of two or three will fit together.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Blender 5.0.1</span></span><br />
<br />
The everything-machine for 3D. This document covers the 5.0 release — geometry nodes overhaul, node-based modifiers, native ACES color management, Cycles adaptive subdivision out of experimental, EEVEE hair rendering rewrite, and the new UV editing system. The reference walks through every mode (Object, Edit, Sculpt, Vertex Paint, Weight Paint, Texture Paint, Pose, Particle Edit), the full Properties Editor tab-by-tab, all node systems (Shader, Geometry, Compositing), the modifier stack, render engine differences, add-on management, and performance tuning.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Modeling, sculpting, animation, rigging, simulation, rendering (Cycles + EEVEE), compositing, motion tracking, video editing, Grease Pencil 2D animation, geometry nodes, file formats, Linux resource paths.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Blender-5_0_1-Context.md

Version:  5.0.1 (December 2025 patch; base release November 2025)
Platform:  Linux (native), Windows, macOS
License:  GPL-2.0-or-later

Sections:
  - What Is Blender 5.0 / What's New in 5.0
  - Interface Architecture
  - Modes — Blender's Modal System
  - Properties Editor — Tab-by-Tab Reference
  - Essential Keyboard Shortcuts
  - Render Engines (Cycles, EEVEE, Workbench)
  - Node Systems (Shader, Geometry, Compositing)
  - Modifier System
  - Add-on / Extension System
  - AI Integration
  - Performance on Your Hardware
  - File Formats
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">GIMP 3.2.2</span></span><br />
<br />
The first major GIMP release in seven years rewrote nearly everything under the hood — GTK3 port, proper HiDPI scaling, native Wayland support, non-destructive filters, multi-layer selection, and the death of floating selections. This document covers both the 3.0 foundational changes and the 3.2 additions, with a complete tool list, dockable dialog reference, layer system breakdown, color management setup, the Python 3 scripting system, and a Photoshop-to-GIMP translation table for anyone crossing over.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Raster editing, photo retouching, non-destructive filter workflows, layer management, color profiles, scripting and plugins, batch processing, format support, and where GIMP fits alongside Krita in a production pipeline.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>GIMP-3_2_2-Context.md

Version:  3.2.2 (March 2026; latest stable 3.2.4, April 2026)
Platform:  Linux (GTK3, native Wayland), macOS, Windows
License:  GPL-3.0+

Sections:
  - What Changed: GIMP 3.x vs 2.10
  - Interface Architecture
  - The Toolbox — Complete Tool List
  - Dockable Dialogs — GIMP's Panel System
  - Essential Keyboard Shortcuts
  - Non-Destructive Filters (GIMP 3.0+)
  - Layer System
  - Color Management
  - Scripting &amp; Plugin System
  - Performance Optimization for Your Hardware
  - Photoshop-to-GIMP Translation
  - File Format Support
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"
  - Krita vs GIMP — When to Use Each</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Inkscape 1.4</span></span><br />
<br />
The leading open-source vector editor, SVG-native. This document covers the 1.4 "Geek Edition" series through the 1.4.4 maintenance release, with notes on the incoming 1.5 GTK4 port. Full reference for the toolbox, dialog system, Live Path Effects for non-destructive path modification, Trace Bitmap for vectorizing raster images, the tiled clones system, extensions, SVG filters, and pipeline integration with the rest of the stack.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Vector drawing and editing, SVG authoring, path operations, boolean operations, LPEs, bitmap tracing, clones, extensions, color management, format support, and Illustrator-to-Inkscape translation.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Inkscape-1_4-Context-Doc.md

Version:  1.4.4 (May 2026; latest stable)
Platform:  Linux (GTK3), Windows, macOS, FreeBSD
License:  GPL-2.0-or-later
Native:    SVG (Scalable Vector Graphics)

Sections:
  - What Is Inkscape / Version Status
  - Interface Architecture
  - The Toolbox — Complete Tool List
  - Dialogs — The Panel System
  - Essential Keyboard Shortcuts
  - Live Path Effects (LPEs)
  - Trace Bitmap — Vectorizing Raster Images
  - Clones and Tiled Clones
  - Extensions System
  - Filters (SVG Filters)
  - Color Management
  - File Format Support
  - Performance Notes for Your Hardware
  - Photoshop/Illustrator → Inkscape Translation
  - Pipeline Integration</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kdenlive 26.08</span></span><br />
<br />
The most feature-complete non-linear video editor in the Linux ecosystem. This document covers the 26.08 release — drag-and-drop track reordering, gap markers, multi-clip speed changes, document patch versioning — along with highlights from the 25.12 and 26.04 releases that brought AI-powered object segmentation, rewritten OpenTimelineIO support, and fullscreen monitor mirroring. Complete reference for timeline editing, effects and filters, transitions, title creation, speech-to-text, multi-cam workflows, rendering profiles, and hardware-accelerated encoding.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Multi-track video editing, 3-point editing, proxy workflows, keyframe animation, nested sequences, color correction with scopes, audio mixing, effects (MLT/FFmpeg/frei0r/LADSPA), rendering, and performance tuning.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Kdenlive-Context.md

Version:  26.08.0 (August 2026; latest stable)
Platform:  Linux (KDE/Qt), Windows, macOS
License:  GPL-3.0-or-later
Built on:  MLT Framework, FFmpeg, frei0r, LADSPA

Sections:
  - What Is Kdenlive / Release Cycle / Recent Highlights
  - Interface Architecture
  - Settings / Preferences
  - Timeline Editing
  - Essential Keyboard Shortcuts
  - Effects and Filters
  - Transitions and Compositions
  - Titles and Graphics
  - Speech to Text
  - Multi-Cam Editing
  - Rendering (Export)
  - AI Features
  - File Formats
  - Performance for Your Hardware
  - Resource Locations (Linux)</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Krita 6.0.1</span></span><br />
<br />
The digital painting and illustration powerhouse. This document covers the 6.0 Qt6 port alongside the parallel 5.3 Qt5 branch — same features, different toolkit underneath. Includes the full brush engine deep-dive (pixel, color smudge, shape, quick, clone, deform, tangent normal, and more), the complete docker reference where most of Krita's power actually lives, workspace customization, the filter system, layer types and blending, Python scripting, AI Diffusion plugin integration, and the Pop-up Palette system.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Digital painting, illustration, concept art, 2D animation, brush system architecture, layer management, filter workflows, drawing assistants, scripting, AI generation, format support, and performance optimization.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Krita-6_0_1-Context.md

Version:  6.0.1 (March 2026; stable production branch is 5.3.2.1)
Platform:  Linux (Ubuntu Studio), macOS, Windows
License:  GPL-3.0

Sections:
  - What Is Krita 6.0 vs 5.3
  - Interface Architecture
  - Dockers — The Deep Settings Layer
  - Workspace Customization
  - Essential Keyboard Shortcuts
  - Brush System Deep Dive
  - Settings Deep Dive — Where Everything Lives
  - Filters (Built-in)
  - Layer System
  - Python Scripting &amp; Plugin System
  - AI Integration — Krita AI Diffusion
  - File Format Support
  - Performance Optimization for Your Hardware
  - Pop-up Palette (Right-Click Menu)
  - Drawing Assistants</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">OBS Studio 32.2</span></span><br />
<br />
The standard for screen recording and live streaming, configured for Linux. This document is specifically tuned for a PipeWire + Wayland + AMD setup — it covers the Linux screen capture situation (what works, what doesn't, and why), PipeWire audio integration, the full source type list, encoding settings optimized for real hardware, filter chains, scene composition workflows, the plugin ecosystem, virtual camera setup, and the distinction between profiles and scene collections.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Screen recording, live streaming, scene composition, video encoding (x264, VAAPI, AMF), audio mixing, source types, filters, plugins, virtual camera, PipeWire/Wayland-specific configuration, and hardware-matched encoding profiles.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>OBS-Studio-Linux-Context.md

Version:  32.2.2 (August 2026; latest stable)
Platform:  Linux (X11 and Wayland), Windows, macOS
License:  GPL-2.0
Target:    Ubuntu Studio 26.04 LTS, KDE Plasma 6, PipeWire, AMD RX 580

Sections:
  - What Is OBS Studio
  - Installation on Ubuntu Studio 26.04
  - The Linux Screen Capture Situation (Critical)
  - Audio on Linux — PipeWire Integration
  - Interface Layout
  - Source Types (Complete List)
  - Encoding Settings for Your Hardware
  - Keyboard Shortcuts (Hotkeys)
  - Filters (Per-Source and Per-Audio)
  - Scenes &amp; Sources — Workflow
  - Plugins &amp; Extensions
  - Virtual Camera
  - Profiles &amp; Scene Collections
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">PixiEditor 2.1</span></span><br />
<br />
A fast-moving project that started as a pixel art editor and evolved into a universal 2D editor with a node graph engine running underneath everything. Version 2.1 added a node-based brush engine, sub-pixel precision painting, tablet support, smart layers, and stabilizers. The document covers the three-toolset system (Drawing, Vector, Adjustments), the full node graph with every built-in node listed, the layer and color systems, frame-by-frame animation, the extension browser, and how it fits into a game asset pipeline alongside the other tools in this package.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Pixel art, raster painting, vector graphics, animation, node-based procedural generation, custom shaders, spritesheet export, extension system, and game asset pipeline integration.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>PixiEditor-2_1-Context.md

Version:  2.1.2.2 (August 2026; latest stable)
Platform:  Windows, macOS, Linux (AvaloniaUI)
License:  LGPL v3 (free and open-source; paid Steam version funds development)
Built with: C#, AvaloniaUI, SkiaSharp

Sections:
  - What Is PixiEditor / Version History
  - Interface Architecture
  - The Toolset System (Drawing, Vector, Adjustments)
  - Tools by Toolset
  - The Node Graph
  - Layer System
  - Color System
  - Animation
  - File Formats
  - Extension System
  - Keyboard Shortcuts
  - Performance Notes for Your Hardware
  - Pipeline Integration
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Pro Motion NG V8</span></span><br />
<br />
A pixel art and sprite animation editor built in the Deluxe Paint tradition — indexed color mode, palette-first workflows, and the "grab pixels as a brush" paradigm that replaced conventional selections. This is the tool professionals at Yacht Club Games, WayForward, and Sega have used for hardware-accurate retro art. The document covers the conceptual shift from modern editors, Linux compatibility via bundled Wine, the full toolbox, all 25+ paint modes, the indexed palette system with per-hardware constraints (C64, NES, SNES, Game Boy), tile map creation, animation, pattern drawing, bitmap fonts, and how Pro Motion and PixiEditor complement each other in a pipeline.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Indexed-color pixel art, sprite animation, tile map editing, color cycling, halftone dithering, palette constraints, Deluxe Paint workflow concepts, Linux/Wine setup, and pipeline integration with PixiEditor and the broader stack.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ProMotionNG-V8-Context-Doc.md

Version:  8.0.11.x (V8 series, actively maintained)
Platform:  Windows native; Linux/macOS via bundled Wine
License:  Proprietary, &#36;39 one-time purchase (Free Edition available)
Developer: Jan Zimmermann / Cosmigo, Germany

Sections:
  - What Is Pro Motion NG / The Deluxe Paint Lineage
  - Linux Compatibility
  - Interface Architecture
  - The Toolbox — Drawing Tools
  - Paint Modes (25+ Modes)
  - Color System — Indexed Palettes
  - Layer System
  - Animation System
  - Tile Map System
  - Pattern Drawing (Seamless Textures)
  - Bitmap Fonts
  - Selections and Transformations
  - Key Keyboard Shortcuts
  - Preferences Deep Dive
  - Plugin System</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-style: italic;" class="mycode_i">Creative Toolchain Package — Volume 1. Built for PhotonamusWeb by Photonamus.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=16" target="_blank" title="">Creative_Tool_Chain_Package-Volume_1.zip</a> (Size: 79.77 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[News [9/8/2026]]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=63</link>
			<pubDate>Tue, 08 Sep 2026 14:20:54 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=63</guid>
			<description><![CDATA[<div style="text-align: left;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
Another day another marathon run across the project. A new timeline will be up later on it is ready it just needs pushed to the site. There are 2 new sections on the front page one for projects and one for ai context library posts. The archives have been tucked under a collapsible menu. Everything appears to be working for the most part but I found a couple bugs. The radio seek bar does not work quite right. The ai context posts are also not updating properly on the front page. Both will get fixed next pass and the new timeline will go up along side this all.<br />
<div style="text-align: center;" class="mycode_align"><div style="text-align: left;" class="mycode_align">─── ◆ ───</div>
</div>
Currently working on 10 new themes. This is another set of 5 light and 5 dark themes for the supporter tier. I am building a system to issue codes and coupons that will let me handle the future shop. I need a way to promo shop items do giveaways etc. Part of the shop set up process. I need supporter tier stuff to be ready for that so we are working out some themes and other stuff to go along with supporter status. I still have slight work on the forum site. We need a site button a fix on one page for mobile view and I need to inspect the email verification process to see what is going on there. <br />
─── ◆ ───<br />
It has been a lot of work the last couple days getting to this point but I think the site is starting to get polished now. Fix up the forums stomp a couple bugs and this place is looking solid. From here we can work out any remaining features that can be added before I split this off into a package for the shop when it opens.<br />
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></description>
			<content:encoded><![CDATA[<div style="text-align: left;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
Another day another marathon run across the project. A new timeline will be up later on it is ready it just needs pushed to the site. There are 2 new sections on the front page one for projects and one for ai context library posts. The archives have been tucked under a collapsible menu. Everything appears to be working for the most part but I found a couple bugs. The radio seek bar does not work quite right. The ai context posts are also not updating properly on the front page. Both will get fixed next pass and the new timeline will go up along side this all.<br />
<div style="text-align: center;" class="mycode_align"><div style="text-align: left;" class="mycode_align">─── ◆ ───</div>
</div>
Currently working on 10 new themes. This is another set of 5 light and 5 dark themes for the supporter tier. I am building a system to issue codes and coupons that will let me handle the future shop. I need a way to promo shop items do giveaways etc. Part of the shop set up process. I need supporter tier stuff to be ready for that so we are working out some themes and other stuff to go along with supporter status. I still have slight work on the forum site. We need a site button a fix on one page for mobile view and I need to inspect the email verification process to see what is going on there. <br />
─── ◆ ───<br />
It has been a lot of work the last couple days getting to this point but I think the site is starting to get polished now. Fix up the forums stomp a couple bugs and this place is looking solid. From here we can work out any remaining features that can be added before I split this off into a package for the shop when it opens.<br />
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Creative Tool Chain Package - Volume 1]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=62</link>
			<pubDate>Tue, 08 Sep 2026 13:05:57 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=62</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Creative Toolchain Package — Volume 1</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Eight context documents covering the open-source creative stack from pixel art to 3D rendering<br />
Load them into your AI assistant and get real answers instead of hallucinated menus</span></span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
This package is a set of context documents designed to give an AI assistant deep, working knowledge of eight creative applications. Not surface-level summaries — full interface references, tool lists, keyboard shortcuts, settings locations, rendering configs, file format support, and the kind of detail that turns "I think that setting is somewhere in preferences" into an actual answer.<br />
<br />
Every document follows the same structure: what the software is, what changed in the current version, complete interface and tool breakdowns, workflow-relevant settings, performance notes for real hardware, and pipeline integration guidance. They're written to be pasted into a conversation or attached as context files. The AI reads the document, and then it knows where things are instead of guessing.<br />
<br />
The scope is a full open-source creative production stack — 2D art, vector graphics, image editing, pixel art, video editing, screen recording, and 3D. Everything here runs on Linux. Some of it runs on Windows and macOS too. The package covers the latest stable versions as of mid-2026.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What's in the Package</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Eight context documents:</span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Blender 5.0.1:</span> 3D modeling, sculpting, animation, rendering, compositing, video editing — the full suite.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">GIMP 3.2.2:</span> Raster image editing, photo retouching, color correction, batch processing, non-destructive filters.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Inkscape 1.4:</span> Vector graphics — SVG native, path operations, Live Path Effects, trace bitmap, tiled clones.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Kdenlive 26.08:</span> Non-linear video editing — multi-track timeline, effects, color grading, speech-to-text, multi-cam.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Krita 6.0.1:</span> Digital painting, illustration, 2D animation, brush engine deep-dive, AI diffusion integration.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">OBS Studio 32.2:</span> Screen recording and live streaming on Linux — PipeWire, Wayland capture, encoding setup.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">PixiEditor 2.1:</span> Pixel art, raster painting, vector, and animation with a node graph engine underneath.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Pro Motion NG V8:</span> Indexed-color pixel art and sprite animation in the Deluxe Paint tradition — tile maps, color cycling, palette constraints.<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">How to Use These</span></span><br />
<br />
Grab the zip attached to this post. Each document is a standalone markdown file. Pick the one that matches the tool you're working with and load it into your AI conversation — paste the contents, attach the file, or drop it into a project as a reference document. The AI will then have accurate, version-specific knowledge of the interface, tools, settings, and workflows instead of relying on training data that may be years out of date.<br />
<br />
These pair well with each other. Working on a game art pipeline? Load Pro Motion NG and PixiEditor together. Doing a video project? Load Kdenlive and OBS. Need to go from 2D concept to 3D model? Load Krita and Blender. The documents are sized to fit comfortably in modern context windows individually, and most combinations of two or three will fit together.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Blender 5.0.1</span></span><br />
<br />
The everything-machine for 3D. This document covers the 5.0 release — geometry nodes overhaul, node-based modifiers, native ACES color management, Cycles adaptive subdivision out of experimental, EEVEE hair rendering rewrite, and the new UV editing system. The reference walks through every mode (Object, Edit, Sculpt, Vertex Paint, Weight Paint, Texture Paint, Pose, Particle Edit), the full Properties Editor tab-by-tab, all node systems (Shader, Geometry, Compositing), the modifier stack, render engine differences, add-on management, and performance tuning.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Modeling, sculpting, animation, rigging, simulation, rendering (Cycles + EEVEE), compositing, motion tracking, video editing, Grease Pencil 2D animation, geometry nodes, file formats, Linux resource paths.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Blender-5_0_1-Context.md

Version:  5.0.1 (December 2025 patch; base release November 2025)
Platform:  Linux (native), Windows, macOS
License:  GPL-2.0-or-later

Sections:
  - What Is Blender 5.0 / What's New in 5.0
  - Interface Architecture
  - Modes — Blender's Modal System
  - Properties Editor — Tab-by-Tab Reference
  - Essential Keyboard Shortcuts
  - Render Engines (Cycles, EEVEE, Workbench)
  - Node Systems (Shader, Geometry, Compositing)
  - Modifier System
  - Add-on / Extension System
  - AI Integration
  - Performance on Your Hardware
  - File Formats
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">GIMP 3.2.2</span></span><br />
<br />
The first major GIMP release in seven years rewrote nearly everything under the hood — GTK3 port, proper HiDPI scaling, native Wayland support, non-destructive filters, multi-layer selection, and the death of floating selections. This document covers both the 3.0 foundational changes and the 3.2 additions, with a complete tool list, dockable dialog reference, layer system breakdown, color management setup, the Python 3 scripting system, and a Photoshop-to-GIMP translation table for anyone crossing over.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Raster editing, photo retouching, non-destructive filter workflows, layer management, color profiles, scripting and plugins, batch processing, format support, and where GIMP fits alongside Krita in a production pipeline.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>GIMP-3_2_2-Context.md

Version:  3.2.2 (March 2026; latest stable 3.2.4, April 2026)
Platform:  Linux (GTK3, native Wayland), macOS, Windows
License:  GPL-3.0+

Sections:
  - What Changed: GIMP 3.x vs 2.10
  - Interface Architecture
  - The Toolbox — Complete Tool List
  - Dockable Dialogs — GIMP's Panel System
  - Essential Keyboard Shortcuts
  - Non-Destructive Filters (GIMP 3.0+)
  - Layer System
  - Color Management
  - Scripting &amp; Plugin System
  - Performance Optimization for Your Hardware
  - Photoshop-to-GIMP Translation
  - File Format Support
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"
  - Krita vs GIMP — When to Use Each</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Inkscape 1.4</span></span><br />
<br />
The leading open-source vector editor, SVG-native. This document covers the 1.4 "Geek Edition" series through the 1.4.4 maintenance release, with notes on the incoming 1.5 GTK4 port. Full reference for the toolbox, dialog system, Live Path Effects for non-destructive path modification, Trace Bitmap for vectorizing raster images, the tiled clones system, extensions, SVG filters, and pipeline integration with the rest of the stack.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Vector drawing and editing, SVG authoring, path operations, boolean operations, LPEs, bitmap tracing, clones, extensions, color management, format support, and Illustrator-to-Inkscape translation.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Inkscape-1_4-Context-Doc.md

Version:  1.4.4 (May 2026; latest stable)
Platform:  Linux (GTK3), Windows, macOS, FreeBSD
License:  GPL-2.0-or-later
Native:    SVG (Scalable Vector Graphics)

Sections:
  - What Is Inkscape / Version Status
  - Interface Architecture
  - The Toolbox — Complete Tool List
  - Dialogs — The Panel System
  - Essential Keyboard Shortcuts
  - Live Path Effects (LPEs)
  - Trace Bitmap — Vectorizing Raster Images
  - Clones and Tiled Clones
  - Extensions System
  - Filters (SVG Filters)
  - Color Management
  - File Format Support
  - Performance Notes for Your Hardware
  - Photoshop/Illustrator → Inkscape Translation
  - Pipeline Integration</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kdenlive 26.08</span></span><br />
<br />
The most feature-complete non-linear video editor in the Linux ecosystem. This document covers the 26.08 release — drag-and-drop track reordering, gap markers, multi-clip speed changes, document patch versioning — along with highlights from the 25.12 and 26.04 releases that brought AI-powered object segmentation, rewritten OpenTimelineIO support, and fullscreen monitor mirroring. Complete reference for timeline editing, effects and filters, transitions, title creation, speech-to-text, multi-cam workflows, rendering profiles, and hardware-accelerated encoding.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Multi-track video editing, 3-point editing, proxy workflows, keyframe animation, nested sequences, color correction with scopes, audio mixing, effects (MLT/FFmpeg/frei0r/LADSPA), rendering, and performance tuning.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Kdenlive-Context.md

Version:  26.08.0 (August 2026; latest stable)
Platform:  Linux (KDE/Qt), Windows, macOS
License:  GPL-3.0-or-later
Built on:  MLT Framework, FFmpeg, frei0r, LADSPA

Sections:
  - What Is Kdenlive / Release Cycle / Recent Highlights
  - Interface Architecture
  - Settings / Preferences
  - Timeline Editing
  - Essential Keyboard Shortcuts
  - Effects and Filters
  - Transitions and Compositions
  - Titles and Graphics
  - Speech to Text
  - Multi-Cam Editing
  - Rendering (Export)
  - AI Features
  - File Formats
  - Performance for Your Hardware
  - Resource Locations (Linux)</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Krita 6.0.1</span></span><br />
<br />
The digital painting and illustration powerhouse. This document covers the 6.0 Qt6 port alongside the parallel 5.3 Qt5 branch — same features, different toolkit underneath. Includes the full brush engine deep-dive (pixel, color smudge, shape, quick, clone, deform, tangent normal, and more), the complete docker reference where most of Krita's power actually lives, workspace customization, the filter system, layer types and blending, Python scripting, AI Diffusion plugin integration, and the Pop-up Palette system.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Digital painting, illustration, concept art, 2D animation, brush system architecture, layer management, filter workflows, drawing assistants, scripting, AI generation, format support, and performance optimization.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Krita-6_0_1-Context.md

Version:  6.0.1 (March 2026; stable production branch is 5.3.2.1)
Platform:  Linux (Ubuntu Studio), macOS, Windows
License:  GPL-3.0

Sections:
  - What Is Krita 6.0 vs 5.3
  - Interface Architecture
  - Dockers — The Deep Settings Layer
  - Workspace Customization
  - Essential Keyboard Shortcuts
  - Brush System Deep Dive
  - Settings Deep Dive — Where Everything Lives
  - Filters (Built-in)
  - Layer System
  - Python Scripting &amp; Plugin System
  - AI Integration — Krita AI Diffusion
  - File Format Support
  - Performance Optimization for Your Hardware
  - Pop-up Palette (Right-Click Menu)
  - Drawing Assistants</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">OBS Studio 32.2</span></span><br />
<br />
The standard for screen recording and live streaming, configured for Linux. This document is specifically tuned for a PipeWire + Wayland + AMD setup — it covers the Linux screen capture situation (what works, what doesn't, and why), PipeWire audio integration, the full source type list, encoding settings optimized for real hardware, filter chains, scene composition workflows, the plugin ecosystem, virtual camera setup, and the distinction between profiles and scene collections.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Screen recording, live streaming, scene composition, video encoding (x264, VAAPI, AMF), audio mixing, source types, filters, plugins, virtual camera, PipeWire/Wayland-specific configuration, and hardware-matched encoding profiles.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>OBS-Studio-Linux-Context.md

Version:  32.2.2 (August 2026; latest stable)
Platform:  Linux (X11 and Wayland), Windows, macOS
License:  GPL-2.0
Target:    Ubuntu Studio 26.04 LTS, KDE Plasma 6, PipeWire, AMD RX 580

Sections:
  - What Is OBS Studio
  - Installation on Ubuntu Studio 26.04
  - The Linux Screen Capture Situation (Critical)
  - Audio on Linux — PipeWire Integration
  - Interface Layout
  - Source Types (Complete List)
  - Encoding Settings for Your Hardware
  - Keyboard Shortcuts (Hotkeys)
  - Filters (Per-Source and Per-Audio)
  - Scenes &amp; Sources — Workflow
  - Plugins &amp; Extensions
  - Virtual Camera
  - Profiles &amp; Scene Collections
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">PixiEditor 2.1</span></span><br />
<br />
A fast-moving project that started as a pixel art editor and evolved into a universal 2D editor with a node graph engine running underneath everything. Version 2.1 added a node-based brush engine, sub-pixel precision painting, tablet support, smart layers, and stabilizers. The document covers the three-toolset system (Drawing, Vector, Adjustments), the full node graph with every built-in node listed, the layer and color systems, frame-by-frame animation, the extension browser, and how it fits into a game asset pipeline alongside the other tools in this package.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Pixel art, raster painting, vector graphics, animation, node-based procedural generation, custom shaders, spritesheet export, extension system, and game asset pipeline integration.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>PixiEditor-2_1-Context.md

Version:  2.1.2.2 (August 2026; latest stable)
Platform:  Windows, macOS, Linux (AvaloniaUI)
License:  LGPL v3 (free and open-source; paid Steam version funds development)
Built with: C#, AvaloniaUI, SkiaSharp

Sections:
  - What Is PixiEditor / Version History
  - Interface Architecture
  - The Toolset System (Drawing, Vector, Adjustments)
  - Tools by Toolset
  - The Node Graph
  - Layer System
  - Color System
  - Animation
  - File Formats
  - Extension System
  - Keyboard Shortcuts
  - Performance Notes for Your Hardware
  - Pipeline Integration
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Pro Motion NG V8</span></span><br />
<br />
A pixel art and sprite animation editor built in the Deluxe Paint tradition — indexed color mode, palette-first workflows, and the "grab pixels as a brush" paradigm that replaced conventional selections. This is the tool professionals at Yacht Club Games, WayForward, and Sega have used for hardware-accurate retro art. The document covers the conceptual shift from modern editors, Linux compatibility via bundled Wine, the full toolbox, all 25+ paint modes, the indexed palette system with per-hardware constraints (C64, NES, SNES, Game Boy), tile map creation, animation, pattern drawing, bitmap fonts, and how Pro Motion and PixiEditor complement each other in a pipeline.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Indexed-color pixel art, sprite animation, tile map editing, color cycling, halftone dithering, palette constraints, Deluxe Paint workflow concepts, Linux/Wine setup, and pipeline integration with PixiEditor and the broader stack.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ProMotionNG-V8-Context-Doc.md

Version:  8.0.11.x (V8 series, actively maintained)
Platform:  Windows native; Linux/macOS via bundled Wine
License:  Proprietary, &#36;39 one-time purchase (Free Edition available)
Developer: Jan Zimmermann / Cosmigo, Germany

Sections:
  - What Is Pro Motion NG / The Deluxe Paint Lineage
  - Linux Compatibility
  - Interface Architecture
  - The Toolbox — Drawing Tools
  - Paint Modes (25+ Modes)
  - Color System — Indexed Palettes
  - Layer System
  - Animation System
  - Tile Map System
  - Pattern Drawing (Seamless Textures)
  - Bitmap Fonts
  - Selections and Transformations
  - Key Keyboard Shortcuts
  - Preferences Deep Dive
  - Plugin System</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-style: italic;" class="mycode_i">Creative Toolchain Package — Volume 1. Built for PhotonamusWeb by Photonamus.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=15" target="_blank" title="">Creative_Tool_Chain_Package-Volume_1.zip</a> (Size: 79.77 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Creative Toolchain Package — Volume 1</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Eight context documents covering the open-source creative stack from pixel art to 3D rendering<br />
Load them into your AI assistant and get real answers instead of hallucinated menus</span></span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
This package is a set of context documents designed to give an AI assistant deep, working knowledge of eight creative applications. Not surface-level summaries — full interface references, tool lists, keyboard shortcuts, settings locations, rendering configs, file format support, and the kind of detail that turns "I think that setting is somewhere in preferences" into an actual answer.<br />
<br />
Every document follows the same structure: what the software is, what changed in the current version, complete interface and tool breakdowns, workflow-relevant settings, performance notes for real hardware, and pipeline integration guidance. They're written to be pasted into a conversation or attached as context files. The AI reads the document, and then it knows where things are instead of guessing.<br />
<br />
The scope is a full open-source creative production stack — 2D art, vector graphics, image editing, pixel art, video editing, screen recording, and 3D. Everything here runs on Linux. Some of it runs on Windows and macOS too. The package covers the latest stable versions as of mid-2026.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What's in the Package</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Eight context documents:</span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Blender 5.0.1:</span> 3D modeling, sculpting, animation, rendering, compositing, video editing — the full suite.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">GIMP 3.2.2:</span> Raster image editing, photo retouching, color correction, batch processing, non-destructive filters.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Inkscape 1.4:</span> Vector graphics — SVG native, path operations, Live Path Effects, trace bitmap, tiled clones.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Kdenlive 26.08:</span> Non-linear video editing — multi-track timeline, effects, color grading, speech-to-text, multi-cam.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Krita 6.0.1:</span> Digital painting, illustration, 2D animation, brush engine deep-dive, AI diffusion integration.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">OBS Studio 32.2:</span> Screen recording and live streaming on Linux — PipeWire, Wayland capture, encoding setup.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">PixiEditor 2.1:</span> Pixel art, raster painting, vector, and animation with a node graph engine underneath.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Pro Motion NG V8:</span> Indexed-color pixel art and sprite animation in the Deluxe Paint tradition — tile maps, color cycling, palette constraints.<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">How to Use These</span></span><br />
<br />
Grab the zip attached to this post. Each document is a standalone markdown file. Pick the one that matches the tool you're working with and load it into your AI conversation — paste the contents, attach the file, or drop it into a project as a reference document. The AI will then have accurate, version-specific knowledge of the interface, tools, settings, and workflows instead of relying on training data that may be years out of date.<br />
<br />
These pair well with each other. Working on a game art pipeline? Load Pro Motion NG and PixiEditor together. Doing a video project? Load Kdenlive and OBS. Need to go from 2D concept to 3D model? Load Krita and Blender. The documents are sized to fit comfortably in modern context windows individually, and most combinations of two or three will fit together.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Blender 5.0.1</span></span><br />
<br />
The everything-machine for 3D. This document covers the 5.0 release — geometry nodes overhaul, node-based modifiers, native ACES color management, Cycles adaptive subdivision out of experimental, EEVEE hair rendering rewrite, and the new UV editing system. The reference walks through every mode (Object, Edit, Sculpt, Vertex Paint, Weight Paint, Texture Paint, Pose, Particle Edit), the full Properties Editor tab-by-tab, all node systems (Shader, Geometry, Compositing), the modifier stack, render engine differences, add-on management, and performance tuning.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Modeling, sculpting, animation, rigging, simulation, rendering (Cycles + EEVEE), compositing, motion tracking, video editing, Grease Pencil 2D animation, geometry nodes, file formats, Linux resource paths.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Blender-5_0_1-Context.md

Version:  5.0.1 (December 2025 patch; base release November 2025)
Platform:  Linux (native), Windows, macOS
License:  GPL-2.0-or-later

Sections:
  - What Is Blender 5.0 / What's New in 5.0
  - Interface Architecture
  - Modes — Blender's Modal System
  - Properties Editor — Tab-by-Tab Reference
  - Essential Keyboard Shortcuts
  - Render Engines (Cycles, EEVEE, Workbench)
  - Node Systems (Shader, Geometry, Compositing)
  - Modifier System
  - Add-on / Extension System
  - AI Integration
  - Performance on Your Hardware
  - File Formats
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">GIMP 3.2.2</span></span><br />
<br />
The first major GIMP release in seven years rewrote nearly everything under the hood — GTK3 port, proper HiDPI scaling, native Wayland support, non-destructive filters, multi-layer selection, and the death of floating selections. This document covers both the 3.0 foundational changes and the 3.2 additions, with a complete tool list, dockable dialog reference, layer system breakdown, color management setup, the Python 3 scripting system, and a Photoshop-to-GIMP translation table for anyone crossing over.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Raster editing, photo retouching, non-destructive filter workflows, layer management, color profiles, scripting and plugins, batch processing, format support, and where GIMP fits alongside Krita in a production pipeline.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>GIMP-3_2_2-Context.md

Version:  3.2.2 (March 2026; latest stable 3.2.4, April 2026)
Platform:  Linux (GTK3, native Wayland), macOS, Windows
License:  GPL-3.0+

Sections:
  - What Changed: GIMP 3.x vs 2.10
  - Interface Architecture
  - The Toolbox — Complete Tool List
  - Dockable Dialogs — GIMP's Panel System
  - Essential Keyboard Shortcuts
  - Non-Destructive Filters (GIMP 3.0+)
  - Layer System
  - Color Management
  - Scripting &amp; Plugin System
  - Performance Optimization for Your Hardware
  - Photoshop-to-GIMP Translation
  - File Format Support
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"
  - Krita vs GIMP — When to Use Each</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Inkscape 1.4</span></span><br />
<br />
The leading open-source vector editor, SVG-native. This document covers the 1.4 "Geek Edition" series through the 1.4.4 maintenance release, with notes on the incoming 1.5 GTK4 port. Full reference for the toolbox, dialog system, Live Path Effects for non-destructive path modification, Trace Bitmap for vectorizing raster images, the tiled clones system, extensions, SVG filters, and pipeline integration with the rest of the stack.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Vector drawing and editing, SVG authoring, path operations, boolean operations, LPEs, bitmap tracing, clones, extensions, color management, format support, and Illustrator-to-Inkscape translation.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Inkscape-1_4-Context-Doc.md

Version:  1.4.4 (May 2026; latest stable)
Platform:  Linux (GTK3), Windows, macOS, FreeBSD
License:  GPL-2.0-or-later
Native:    SVG (Scalable Vector Graphics)

Sections:
  - What Is Inkscape / Version Status
  - Interface Architecture
  - The Toolbox — Complete Tool List
  - Dialogs — The Panel System
  - Essential Keyboard Shortcuts
  - Live Path Effects (LPEs)
  - Trace Bitmap — Vectorizing Raster Images
  - Clones and Tiled Clones
  - Extensions System
  - Filters (SVG Filters)
  - Color Management
  - File Format Support
  - Performance Notes for Your Hardware
  - Photoshop/Illustrator → Inkscape Translation
  - Pipeline Integration</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Kdenlive 26.08</span></span><br />
<br />
The most feature-complete non-linear video editor in the Linux ecosystem. This document covers the 26.08 release — drag-and-drop track reordering, gap markers, multi-clip speed changes, document patch versioning — along with highlights from the 25.12 and 26.04 releases that brought AI-powered object segmentation, rewritten OpenTimelineIO support, and fullscreen monitor mirroring. Complete reference for timeline editing, effects and filters, transitions, title creation, speech-to-text, multi-cam workflows, rendering profiles, and hardware-accelerated encoding.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Multi-track video editing, 3-point editing, proxy workflows, keyframe animation, nested sequences, color correction with scopes, audio mixing, effects (MLT/FFmpeg/frei0r/LADSPA), rendering, and performance tuning.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Kdenlive-Context.md

Version:  26.08.0 (August 2026; latest stable)
Platform:  Linux (KDE/Qt), Windows, macOS
License:  GPL-3.0-or-later
Built on:  MLT Framework, FFmpeg, frei0r, LADSPA

Sections:
  - What Is Kdenlive / Release Cycle / Recent Highlights
  - Interface Architecture
  - Settings / Preferences
  - Timeline Editing
  - Essential Keyboard Shortcuts
  - Effects and Filters
  - Transitions and Compositions
  - Titles and Graphics
  - Speech to Text
  - Multi-Cam Editing
  - Rendering (Export)
  - AI Features
  - File Formats
  - Performance for Your Hardware
  - Resource Locations (Linux)</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Krita 6.0.1</span></span><br />
<br />
The digital painting and illustration powerhouse. This document covers the 6.0 Qt6 port alongside the parallel 5.3 Qt5 branch — same features, different toolkit underneath. Includes the full brush engine deep-dive (pixel, color smudge, shape, quick, clone, deform, tangent normal, and more), the complete docker reference where most of Krita's power actually lives, workspace customization, the filter system, layer types and blending, Python scripting, AI Diffusion plugin integration, and the Pop-up Palette system.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Digital painting, illustration, concept art, 2D animation, brush system architecture, layer management, filter workflows, drawing assistants, scripting, AI generation, format support, and performance optimization.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Krita-6_0_1-Context.md

Version:  6.0.1 (March 2026; stable production branch is 5.3.2.1)
Platform:  Linux (Ubuntu Studio), macOS, Windows
License:  GPL-3.0

Sections:
  - What Is Krita 6.0 vs 5.3
  - Interface Architecture
  - Dockers — The Deep Settings Layer
  - Workspace Customization
  - Essential Keyboard Shortcuts
  - Brush System Deep Dive
  - Settings Deep Dive — Where Everything Lives
  - Filters (Built-in)
  - Layer System
  - Python Scripting &amp; Plugin System
  - AI Integration — Krita AI Diffusion
  - File Format Support
  - Performance Optimization for Your Hardware
  - Pop-up Palette (Right-Click Menu)
  - Drawing Assistants</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">OBS Studio 32.2</span></span><br />
<br />
The standard for screen recording and live streaming, configured for Linux. This document is specifically tuned for a PipeWire + Wayland + AMD setup — it covers the Linux screen capture situation (what works, what doesn't, and why), PipeWire audio integration, the full source type list, encoding settings optimized for real hardware, filter chains, scene composition workflows, the plugin ecosystem, virtual camera setup, and the distinction between profiles and scene collections.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Screen recording, live streaming, scene composition, video encoding (x264, VAAPI, AMF), audio mixing, source types, filters, plugins, virtual camera, PipeWire/Wayland-specific configuration, and hardware-matched encoding profiles.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>OBS-Studio-Linux-Context.md

Version:  32.2.2 (August 2026; latest stable)
Platform:  Linux (X11 and Wayland), Windows, macOS
License:  GPL-2.0
Target:    Ubuntu Studio 26.04 LTS, KDE Plasma 6, PipeWire, AMD RX 580

Sections:
  - What Is OBS Studio
  - Installation on Ubuntu Studio 26.04
  - The Linux Screen Capture Situation (Critical)
  - Audio on Linux — PipeWire Integration
  - Interface Layout
  - Source Types (Complete List)
  - Encoding Settings for Your Hardware
  - Keyboard Shortcuts (Hotkeys)
  - Filters (Per-Source and Per-Audio)
  - Scenes &amp; Sources — Workflow
  - Plugins &amp; Extensions
  - Virtual Camera
  - Profiles &amp; Scene Collections
  - Resource Locations (Linux)
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">PixiEditor 2.1</span></span><br />
<br />
A fast-moving project that started as a pixel art editor and evolved into a universal 2D editor with a node graph engine running underneath everything. Version 2.1 added a node-based brush engine, sub-pixel precision painting, tablet support, smart layers, and stabilizers. The document covers the three-toolset system (Drawing, Vector, Adjustments), the full node graph with every built-in node listed, the layer and color systems, frame-by-frame animation, the extension browser, and how it fits into a game asset pipeline alongside the other tools in this package.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Pixel art, raster painting, vector graphics, animation, node-based procedural generation, custom shaders, spritesheet export, extension system, and game asset pipeline integration.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>PixiEditor-2_1-Context.md

Version:  2.1.2.2 (August 2026; latest stable)
Platform:  Windows, macOS, Linux (AvaloniaUI)
License:  LGPL v3 (free and open-source; paid Steam version funds development)
Built with: C#, AvaloniaUI, SkiaSharp

Sections:
  - What Is PixiEditor / Version History
  - Interface Architecture
  - The Toolset System (Drawing, Vector, Adjustments)
  - Tools by Toolset
  - The Node Graph
  - Layer System
  - Color System
  - Animation
  - File Formats
  - Extension System
  - Keyboard Shortcuts
  - Performance Notes for Your Hardware
  - Pipeline Integration
  - Quick Reference — "Where Is That Setting?"</code></div></div><br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Pro Motion NG V8</span></span><br />
<br />
A pixel art and sprite animation editor built in the Deluxe Paint tradition — indexed color mode, palette-first workflows, and the "grab pixels as a brush" paradigm that replaced conventional selections. This is the tool professionals at Yacht Club Games, WayForward, and Sega have used for hardware-accurate retro art. The document covers the conceptual shift from modern editors, Linux compatibility via bundled Wine, the full toolbox, all 25+ paint modes, the indexed palette system with per-hardware constraints (C64, NES, SNES, Game Boy), tile map creation, animation, pattern drawing, bitmap fonts, and how Pro Motion and PixiEditor complement each other in a pipeline.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Covers:</span> Indexed-color pixel art, sprite animation, tile map editing, color cycling, halftone dithering, palette constraints, Deluxe Paint workflow concepts, Linux/Wine setup, and pipeline integration with PixiEditor and the broader stack.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>ProMotionNG-V8-Context-Doc.md

Version:  8.0.11.x (V8 series, actively maintained)
Platform:  Windows native; Linux/macOS via bundled Wine
License:  Proprietary, &#36;39 one-time purchase (Free Edition available)
Developer: Jan Zimmermann / Cosmigo, Germany

Sections:
  - What Is Pro Motion NG / The Deluxe Paint Lineage
  - Linux Compatibility
  - Interface Architecture
  - The Toolbox — Drawing Tools
  - Paint Modes (25+ Modes)
  - Color System — Indexed Palettes
  - Layer System
  - Animation System
  - Tile Map System
  - Pattern Drawing (Seamless Textures)
  - Bitmap Fonts
  - Selections and Transformations
  - Key Keyboard Shortcuts
  - Preferences Deep Dive
  - Plugin System</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-style: italic;" class="mycode_i">Creative Toolchain Package — Volume 1. Built for PhotonamusWeb by Photonamus.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=15" target="_blank" title="">Creative_Tool_Chain_Package-Volume_1.zip</a> (Size: 79.77 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[News [9/7/2026]]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=61</link>
			<pubDate>Mon, 07 Sep 2026 11:55:42 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=61</guid>
			<description><![CDATA[<div style="text-align: left;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
We did a major security pass over everything. This was to address some serious vulnerabilities in software used to run the stack. Luckily we were unaffected by the attacks and did not have any of the signs of being compromised yet. I halted development to handle that and some life stuff that got in the way of working. We are back though the security is handled. I did a complete sweep of all the systems and minimized the entire attack surface for photonamus.com it's been sealed up proper. You will see a security post from today about this as well. I am just noting it again here.<br />
<div style="text-align: center;" class="mycode_align"><div style="text-align: left;" class="mycode_align">─── ◆ ───</div>
</div>
What else is going on? Now that the security is properly handled we can get the store up and running soon. 2 products coming right away hopefully. The site/forum setup this all runs on will be packaged up as an easy to install and run self hosting platform. I also have a tool to auto sort and name files coming that should be interesting too. Security had to come first before we can add payment options and open shop. I'll add the first products and the shop will be updated over time from there.<br />
─── ◆ ───<br />
Things that got changed today? I ran a marathon session to get the site cleaned up. We ran security so I decided to clean up the whole project end to end. I stomped on a lot of bugs too in the process. Radio now has a lyrics panel and displays album art and got some new tracks. I think we are at like 46 tracks in the radio right now. The new Timeline feature is live. Click on the Timeline button on the site to view it. Hit counter got some bug fixes. We are mostly there now. Everything is starting to get polished and complete at this point.<br />
─── ◆ ───<br />
Things left to do? Fix a mobile view page that is broken on the forums and add a button to the forum to go back to the site. I still need to check out email verification and the matrix chat broke during the security pass I will fix it when I get back from some sleep in the next pass. I also need to hook up some more stuff to the front page of the site. I have at least 2 more sections that need to be added to the front page feed.<br />
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></description>
			<content:encoded><![CDATA[<div style="text-align: left;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
We did a major security pass over everything. This was to address some serious vulnerabilities in software used to run the stack. Luckily we were unaffected by the attacks and did not have any of the signs of being compromised yet. I halted development to handle that and some life stuff that got in the way of working. We are back though the security is handled. I did a complete sweep of all the systems and minimized the entire attack surface for photonamus.com it's been sealed up proper. You will see a security post from today about this as well. I am just noting it again here.<br />
<div style="text-align: center;" class="mycode_align"><div style="text-align: left;" class="mycode_align">─── ◆ ───</div>
</div>
What else is going on? Now that the security is properly handled we can get the store up and running soon. 2 products coming right away hopefully. The site/forum setup this all runs on will be packaged up as an easy to install and run self hosting platform. I also have a tool to auto sort and name files coming that should be interesting too. Security had to come first before we can add payment options and open shop. I'll add the first products and the shop will be updated over time from there.<br />
─── ◆ ───<br />
Things that got changed today? I ran a marathon session to get the site cleaned up. We ran security so I decided to clean up the whole project end to end. I stomped on a lot of bugs too in the process. Radio now has a lyrics panel and displays album art and got some new tracks. I think we are at like 46 tracks in the radio right now. The new Timeline feature is live. Click on the Timeline button on the site to view it. Hit counter got some bug fixes. We are mostly there now. Everything is starting to get polished and complete at this point.<br />
─── ◆ ───<br />
Things left to do? Fix a mobile view page that is broken on the forums and add a button to the forum to go back to the site. I still need to check out email verification and the matrix chat broke during the security pass I will fix it when I get back from some sleep in the next pass. I also need to hook up some more stuff to the front page of the site. I have at least 2 more sections that need to be added to the front page feed.<br />
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Security Updates [9/7/2026]]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=60</link>
			<pubDate>Mon, 07 Sep 2026 11:40:55 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=60</guid>
			<description><![CDATA[━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
Today I completed a full security pass across the server infrastructure that hosts photonamus.com and these forums. This is part of an ongoing effort to stay ahead of threats and keep everything running on current, patched software. Here's what was done.<br />
─── ◆ ───<br />
What Was Updated:<br />
The server received a comprehensive round of updates covering every layer of the stack:<br />
Operating system and kernel — updated to the latest available release, patching several known privilege escalation and container isolation vulnerabilities that were disclosed over the summer.<br />
Reverse proxy — the gateway that handles all incoming connections and SSL/TLS was rebuilt on the latest release. This addresses a remote code execution vulnerability that was publicly disclosed in June.<br />
Matrix homeserver — our federated chat server was updated from a version with a critical vulnerability (actively exploited in the wild against other servers) to the latest stable release. All known federation and authentication issues are now patched.<br />
All containerized services — every service running on the server was rebuilt on fresh, up-to-date images. This includes the forums, the main site, analytics, chat clients, monitoring, and supporting services. Thirteen containers total, all verified running after a clean reboot.<br />
Credential hygiene — stale initial-setup credentials that were no longer functional but still visible in container metadata were removed as a housekeeping measure.<br />
─── ◆ ───<br />
What This Means for You?<br />
Nothing changes on your end. Your accounts, posts, and data are all intact and unaffected. These were infrastructure-level updates — the kind of maintenance that happens behind the scenes to make sure everything stays secure and reliable.<br />
The forums, the main site, and all associated services were verified working after the updates. If you notice anything behaving oddly, let me know.<br />
─── ◆ ───<br />
Ongoing Security Posture:<br />
This isn't a one-time thing. I'm building out a structured security workflow that includes regular threat intelligence sweeps to check for new vulnerabilities affecting our specific software stack, automated and manual auditing of dependencies and container images, and a standing practice of applying patches promptly when critical issues are disclosed.<br />
The goal is to stay proactive rather than reactive. When security researchers disclose a vulnerability, I want us patched before it matters — not after.<br />
─── ◆ ───<br />
Transparency:<br />
I'm posting this because I believe in being upfront about infrastructure maintenance. A lot of self-hosted services run on stale software because nobody's watching. That's not how we operate here. If you're trusting this platform with an account and your data, you should know that someone is actively keeping the lights on and the doors locked.<br />
<br />
If you have any questions about the security of the platform, feel free to ask.<br />
<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></description>
			<content:encoded><![CDATA[━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
Today I completed a full security pass across the server infrastructure that hosts photonamus.com and these forums. This is part of an ongoing effort to stay ahead of threats and keep everything running on current, patched software. Here's what was done.<br />
─── ◆ ───<br />
What Was Updated:<br />
The server received a comprehensive round of updates covering every layer of the stack:<br />
Operating system and kernel — updated to the latest available release, patching several known privilege escalation and container isolation vulnerabilities that were disclosed over the summer.<br />
Reverse proxy — the gateway that handles all incoming connections and SSL/TLS was rebuilt on the latest release. This addresses a remote code execution vulnerability that was publicly disclosed in June.<br />
Matrix homeserver — our federated chat server was updated from a version with a critical vulnerability (actively exploited in the wild against other servers) to the latest stable release. All known federation and authentication issues are now patched.<br />
All containerized services — every service running on the server was rebuilt on fresh, up-to-date images. This includes the forums, the main site, analytics, chat clients, monitoring, and supporting services. Thirteen containers total, all verified running after a clean reboot.<br />
Credential hygiene — stale initial-setup credentials that were no longer functional but still visible in container metadata were removed as a housekeeping measure.<br />
─── ◆ ───<br />
What This Means for You?<br />
Nothing changes on your end. Your accounts, posts, and data are all intact and unaffected. These were infrastructure-level updates — the kind of maintenance that happens behind the scenes to make sure everything stays secure and reliable.<br />
The forums, the main site, and all associated services were verified working after the updates. If you notice anything behaving oddly, let me know.<br />
─── ◆ ───<br />
Ongoing Security Posture:<br />
This isn't a one-time thing. I'm building out a structured security workflow that includes regular threat intelligence sweeps to check for new vulnerabilities affecting our specific software stack, automated and manual auditing of dependencies and container images, and a standing practice of applying patches promptly when critical issues are disclosed.<br />
The goal is to stay proactive rather than reactive. When security researchers disclose a vulnerability, I want us patched before it matters — not after.<br />
─── ◆ ───<br />
Transparency:<br />
I'm posting this because I believe in being upfront about infrastructure maintenance. A lot of self-hosted services run on stale software because nobody's watching. That's not how we operate here. If you're trusting this platform with an account and your data, you should know that someone is actively keeping the lights on and the doors locked.<br />
<br />
If you have any questions about the security of the platform, feel free to ask.<br />
<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[News [9/4/2026]]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=59</link>
			<pubDate>Fri, 04 Sep 2026 04:49:02 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=59</guid>
			<description><![CDATA[━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
No updates this week. I have been dealing with life here on my end.<br />
─── ◆ ───<br />
There are updates on the way though. I have a few solid rounds of updates waiting to go live soon. It will be another marathon run of updates and should get us where we need to be here. The entire set up is almost complete. It's been a journey but the site/forum design is almost done. Once this is complete and I work out the bugs I will be cleaning up and packaging the entire thing for purchase. You can install and run a set up just like the one you are on now without doing all the work. That's the end goal anyhow to build this into a package others can use to stand up their own stack quickly and easily. It will be a one time purchase without any garbage attached.<br />
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></description>
			<content:encoded><![CDATA[━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
No updates this week. I have been dealing with life here on my end.<br />
─── ◆ ───<br />
There are updates on the way though. I have a few solid rounds of updates waiting to go live soon. It will be another marathon run of updates and should get us where we need to be here. The entire set up is almost complete. It's been a journey but the site/forum design is almost done. Once this is complete and I work out the bugs I will be cleaning up and packaging the entire thing for purchase. You can install and run a set up just like the one you are on now without doing all the work. That's the end goal anyhow to build this into a package others can use to stand up their own stack quickly and easily. It will be a one time purchase without any garbage attached.<br />
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Account Activation [9/4/2026]]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=58</link>
			<pubDate>Fri, 04 Sep 2026 04:42:26 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=58</guid>
			<description><![CDATA[━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
Accounts can be registered. Email activation should work.<br />
If you register and the email does not work for some reason it will still leave your account awaiting activation on my end. I am going to check this a couple times a week and manually activate account in the list. If you sign up just wait a couple of days and it will activate.<br />
─── ◆ ───<br />
Report any problems once you are activated please so I can try to work the issues out.<br />
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></description>
			<content:encoded><![CDATA[━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
Accounts can be registered. Email activation should work.<br />
If you register and the email does not work for some reason it will still leave your account awaiting activation on my end. I am going to check this a couple times a week and manually activate account in the list. If you sign up just wait a couple of days and it will activate.<br />
─── ◆ ───<br />
Report any problems once you are activated please so I can try to work the issues out.<br />
─── ◆ ───<br />
                                    — Photonamus<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sony: A Company At War With It's Self]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=57</link>
			<pubDate>Thu, 27 Aug 2026 03:07:48 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=57</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Company at War with Itself</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Five decades of Sony building things people love<br />
and then tearing them apart from the inside</span></span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
In 2013, Sony released a thirty-second video that became one of the most effective pieces of marketing in gaming history. It showed two PlayStation executives handing a disc to each other. That was it. The entire joke was that sharing a game on PlayStation required no online check-in, no licensing server, no corporate permission — you just handed someone the disc. It was a direct shot at Microsoft, whose Xbox One announcement had just tried to kill the used game market with always-online DRM. The gaming world loved it. Sony looked like the company that understood its customers. The PS4 went on to sell <span style="font-weight: bold;" class="mycode_b">117 million units</span>, roughly doubling the Xbox One.<br />
<br />
In 2026, Sony announced it would stop producing physical game discs entirely by <span style="font-weight: bold;" class="mycode_b">January 2028</span>. It introduced online DRM verification for digital purchases. It had already pulled digital download codes from every third-party retailer years earlier, funneling all digital sales through its own storefront at a <span style="font-weight: bold;" class="mycode_b">30% commission</span>. The company that made a viral video celebrating physical game sharing had quietly built the exact system it once mocked — and then gone further than Microsoft ever tried to.<br />
<br />
This is not a story about a company that lost its way. This is a story about a company that has been at war with itself for fifty years, winning and losing the same fight over and over, because one side of the building keeps creating things people love and the other side keeps trying to lock them down. The builders versus the protectors. And the protectors keep winning.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Civil War</span></span><br />
<br />
Rob Enderle, a technology analyst who covered Sony through its peak years, put it as cleanly as anyone ever has: Sony is "a company at war with itself." That diagnosis wasn't about one product or one bad quarter. It was about a structural flaw baked into the company's DNA — the fact that Sony is simultaneously a hardware manufacturer that needs open ecosystems to sell devices <span style="font-style: italic;" class="mycode_i">and</span> a content owner that needs closed ecosystems to protect revenue. Those two goals are fundamentally incompatible, and Sony has never resolved the contradiction. It just lets whichever side has more internal power at the moment set the agenda, and the customers deal with the fallout.<br />
<br />
Steve Jobs saw this from the outside and used Sony explicitly as Apple's cautionary tale. In Walter Isaacson's biography, Jobs and Tim Cook explained why Apple runs a single profit-and-loss structure across the whole company rather than splitting into autonomous divisions. The point was simple: if your hardware division and your content division are measured on separate balance sheets, they will optimize for different things. They will fight each other. They will block each other's products. They will kill things that are good for the customer but threatening to one division's quarterly numbers. Apple structured itself specifically to avoid becoming Sony.<br />
<br />
Sony never made that structural fix. The result is a company that periodically produces something extraordinary — the Walkman, the PlayStation 2, the PS4 — and then watches it get consumed from the inside by the part of the organization that sees customers as a revenue extraction problem rather than a loyalty asset.<br />
<br />
That pattern is the whole story. Everything else is just examples.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Format Graveyard</span></span><br />
<br />
Sony's relationship with proprietary formats reads like a clinical case study in the same mistake on repeat. Not once. Not twice. Across decades, across divisions, across leadership changes — the same instinct, the same outcome.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Betamax</span> launched in 1975 with a genuine technical edge over VHS — better picture quality, more compact tapes. Sony treated it as a format they would own and control, restricting licensing and lobbying Japan's Ministry of International Trade to make Betamax the national standard under Sony's terms. JVC took the opposite approach with VHS: license it to everyone. Matsushita, Panasonic, RCA, Sharp, Hitachi, Mitsubishi — anyone who wanted to build a VHS machine could. The open ecosystem flooded the market with cheaper players at every price point. More players meant more tapes. More tapes meant more studio support. More studio support meant more reason to buy VHS. By <span style="font-weight: bold;" class="mycode_b">1981</span>, VHS held roughly <span style="font-weight: bold;" class="mycode_b">75% of the US market</span>. By <span style="font-weight: bold;" class="mycode_b">1984</span>, it was over <span style="font-weight: bold;" class="mycode_b">92%</span>. Sony surrendered and started making VHS machines in <span style="font-weight: bold;" class="mycode_b">1988</span>.<br />
<br />
The lesson was obvious: openness and consumer utility beat proprietary control and marginal technical superiority. Sony's takeaway was apparently that Betamax just wasn't proprietary <span style="font-style: italic;" class="mycode_i">enough</span>.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">MiniDisc</span> arrived in 1992. Technically strong — rewritable, skip-resistant, compact. But the launch price was around <span style="font-weight: bold;" class="mycode_b">&#36;750</span>, the prerecorded catalog was thin because labels saw no reason to support another Sony-controlled format, and the software side was strangled with DRM restrictions. Sony sold fewer than <span style="font-weight: bold;" class="mycode_b">50,000 players</span> in the US in the first year. By the time Sony declared 1998 the "Year of the MiniDisc" and pushed a major marketing campaign, the actual year of 1998 belonged to the MP3. MiniDisc Walkman shipments ended in 2011. All MD device shipments ended in March 2013.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Memory Stick</span> was Sony's answer to the SD card — a proprietary flash memory format that only worked in Sony devices, cost more than the open standard, and offered no technical advantage that justified the premium. Sony maintained it for roughly nine years before finally conceding and adopting SD cards. The entire exercise existed because Sony would rather sell you a worse product that they controlled than a better product that used an open standard.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">UMD</span> — the Universal Media Disc — shipped with the PSP in 2004. A proprietary optical disc locked to a single device. The movie releases rarely topped <span style="font-weight: bold;" class="mycode_b">200,000 units</span> sold. A Famitsu reader poll ranked UMD video among the least-used PSP features. When Sony launched the disc-less PSP Go, it promised a conversion program to let existing UMD owners access their games digitally. The program was quietly abandoned.<br />
<br />
Fast Company once ran a piece cataloguing what it called Sony's long list of format failures. Blu-ray is the notable exception — it beat HD DVD — and even that succeeded partly because the PS3 served as a loss-leader Trojan horse that put a Blu-ray player in millions of living rooms whether buyers wanted one or not. The one format war Sony won required subsidizing it with a console that lost <span style="font-weight: bold;" class="mycode_b">&#36;3.3 billion</span>.<br />
<br />
Every one of these follows the same script. Sony builds something technically sound, wraps it in proprietary restrictions, charges a premium for the privilege of being locked in, watches the open alternative win on ecosystem size and consumer freedom, and then moves on to the next format without ever questioning the underlying approach.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Rootkit</span></span><br />
<br />
Before we get to PlayStation, there is one episode that deserves its own section because it reveals the corporate instinct at its most naked.<br />
<br />
In 2005, security researcher Mark Russinovich discovered that certain Sony BMG audio CDs — regular music CDs you'd buy at a store — were secretly installing software on Windows PCs when played. The software used rootkit techniques to hide itself deep in the operating system, and it created security vulnerabilities that actual malware quickly exploited. Symantec found the first virus cloaking itself using Sony's rootkit within weeks of the discovery.<br />
<br />
Sony BMG had shipped over <span style="font-weight: bold;" class="mycode_b">22 million affected CDs</span> across more than a hundred titles. Over <span style="font-weight: bold;" class="mycode_b">20 million</span> carried one copy-protection program called MediaMax. Another roughly <span style="font-weight: bold;" class="mycode_b">2 million</span> carried a more aggressive program called XCP. None of this was disclosed on the packaging. Sony had secretly compromised the computers of paying customers — people who walked into a store, bought a CD with money, and took it home — because it was more afraid of those customers copying the music than it was of violating their trust.<br />
<br />
The Electronic Frontier Foundation issued an open letter. Class action lawsuits followed. Sony settled with consumers, submitted to independent DRM audits for two years, and paid <span style="font-weight: bold;" class="mycode_b">&#36;1.5 million</span> to the California and Texas attorneys general plus additional multi-state settlements. Sony BMG suspended CD copy protection entirely by early 2007.<br />
<br />
This wasn't a rogue employee or a miscalculation. This was a corporate content division that looked at its own customers and saw pirates first and people second. It's the same instinct that killed Betamax and strangled MiniDisc and hobbled the Walkman — the need to control the user's experience so completely that you'd rather compromise their computer than trust them with an unprotected disc. The rootkit is just the version where the control instinct crossed a legal line instead of just a market one.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Five Hundred and Ninety-Nine US Dollars</span></span><br />
<br />
The PlayStation 2 is the best-selling console in history at roughly <span style="font-weight: bold;" class="mycode_b">155 million units</span>. It outsold the original Xbox by about six to one. Sony entered the seventh console generation with the kind of dominance that should have been nearly impossible to squander.<br />
<br />
They squandered it.<br />
<br />
The PS3 launched in November 2006 at <span style="font-weight: bold;" class="mycode_b">&#36;499</span> for the base model and <span style="font-weight: bold;" class="mycode_b">&#36;599</span> for the premium — a price point that immediately became a meme and remains a punchline twenty years later. Sony had built the console around the Cell processor, an exotic architecture that was a nightmare for developers, and included a Blu-ray drive that was expensive to manufacture and whose blue-laser diodes were in such short supply that the European launch was delayed until March 2007, missing Christmas entirely. Market research firm iSuppli estimated Sony was losing over <span style="font-weight: bold;" class="mycode_b">&#36;300 per unit</span> sold. The total PS3 hardware losses reached an estimated <span style="font-weight: bold;" class="mycode_b">&#36;3.3 billion</span>.<br />
<br />
Ken Kutaragi, the PlayStation creator, set the tone for the era. On the price, he said Sony wanted consumers to think about working "more hours" to buy one — a line widely paraphrased as telling gamers to get a second job. He dismissed the Xbox 360, which had a full year head start and was already building momentum, as "just an Xbox 1.5." The confidence wasn't earned — it was inherited from the PS2 era and spent like it was infinite.<br />
<br />
Kutaragi was relieved of day-to-day duties in December 2006, two months after launch, and announced his retirement in April 2007. The PS3 eventually clawed back through price cuts, the Slim redesign, and strong exclusives like Uncharted and The Last of Us, finishing at roughly <span style="font-weight: bold;" class="mycode_b">87 million units</span> — essentially tied with the Xbox 360. But "tied" is a catastrophic result when you started from a position of six-to-one dominance. The PS3 proved that even PlayStation wasn't immune to the Sony pattern: take a dominant position, assume the customers have nowhere else to go, price and design for the company's priorities instead of the player's, and watch the lead evaporate.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Comeback That Didn't Stick</span></span><br />
<br />
This is the part of the story that makes everything after it so much worse.<br />
<br />
At E3 2013, Microsoft walked into its Xbox One reveal and told the gaming world that its new console would require near-daily online check-ins and restrict the resale of used games. The backlash was immediate and violent. Sony saw the opening and drove a truck through it.<br />
<br />
Jack Tretton, the head of Sony's American PlayStation division, took the stage and made it clear: the PS4 would support used games, require no online connection for single-player, and impose no restrictions on how you shared your library. Then Sony released the disc-sharing video — two executives simply handing a game to each other, captioned with instructions for sharing on PS4. The crowd erupted. The internet did the rest.<br />
<br />
But it wasn't just the messaging. Sony priced the PS4 at <span style="font-weight: bold;" class="mycode_b">&#36;399</span>, a full <span style="font-weight: bold;" class="mycode_b">&#36;100</span> below the Xbox One. It was a developer-friendly architecture. It was straightforward, affordable, and positioned entirely around what players actually wanted. The result was <span style="font-weight: bold;" class="mycode_b">117 million units</span> sold — roughly double the Xbox One at an estimated <span style="font-weight: bold;" class="mycode_b">58 million</span>.<br />
<br />
The PS4 era is proof that the pattern is a choice. When Sony chooses openness and consumer goodwill over control and extraction, it wins — not narrowly, but overwhelmingly. The PS4 didn't succeed because of clever marketing or lucky timing. It succeeded because Sony, for one generation, actually aligned the entire company behind what customers wanted instead of what the content and corporate divisions wanted to protect.<br />
<br />
Tretton said at the time that Sony was "focused on delivering what gamers want most without imposing restrictions or devaluing their purchases." That sentence reads differently now.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Regression</span></span><br />
<br />
What followed the PS4's dominance is the most predictable chapter in this entire story, because it's the same chapter Sony has written after every success.<br />
<br />
The first move was quiet. On <span style="font-weight: bold;" class="mycode_b">April 1, 2019</span>, Sony ended its Global Digital at Retail program, cutting off Amazon, GameStop, Best Buy, and every other third-party retailer from selling PlayStation digital download codes. If you wanted to buy a digital PlayStation game, you now had exactly one option: the PlayStation Store, where Sony takes a <span style="font-weight: bold;" class="mycode_b">30% cut</span> of every transaction. The company framed this as an effort to "align key businesses globally." What it aligned was every digital dollar through Sony's own register.<br />
<br />
Then the PS5 era accelerated the pattern. In August 2025, Sony announced a <span style="font-weight: bold;" class="mycode_b">&#36;50 price increase</span> across the entire PS5 line, citing tariffs and "a challenging economic environment." Digital Edition went to <span style="font-weight: bold;" class="mycode_b">&#36;499</span>. Standard to <span style="font-weight: bold;" class="mycode_b">&#36;549</span>. The Pro to <span style="font-weight: bold;" class="mycode_b">&#36;749</span>. The tariffs were real — China at 30%, Japan at 15%, Vietnam at 20%. But when the Supreme Court struck down those tariffs, Sony kept the higher prices. The justification disappeared. The price didn't.<br />
<br />
In July 2026, Sony announced that physical disc production for all new PlayStation games would end in <span style="font-weight: bold;" class="mycode_b">January 2028</span>. The announcement simultaneously confirmed the closure of the PS3 and PS Vita digital stores. No other major console manufacturer has gone this far. The practical effect is the elimination of the last competitive check on PlayStation Store pricing — no physical discs means no second-hand market, no retailer competition, no price discovery outside Sony's own storefront.<br />
<br />
And then came the DRM. Reports surfaced of a new online verification system for digital purchases — a "valid period" check that requires periodic server contact to confirm you still own what you paid for. The comparisons to the 2013 Xbox One announcement were immediate and unavoidable. Sony had gone from mocking always-online DRM to implementing it within a single console generation.<br />
<br />
To be clear about the market realities here: the shift to digital is genuine. Physical disc sales have been declining for years. Tariffs created real cost pressure. These are not invented justifications — they are real conditions that every hardware company faces. The question is not whether Sony had reasons to make these moves. The question is why Sony resolves every ambiguous decision in the same direction. When tariffs hit, they raised prices. When tariffs were struck down, they kept them. When digital overtook physical, they didn't just ride the trend — they killed the alternative and locked the door behind it. When they had the option to maintain competitive pricing through third-party retailers, they eliminated the retailers. Every fork in the road, every moment of ambiguity, Sony turns toward control and extraction. That's not a series of independent business decisions. That's a pattern.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Reckoning</span></span><br />
<br />
The lawsuits arrived from everywhere at once.<br />
<br />
In the <span style="font-weight: bold;" class="mycode_b">United Kingdom</span>, consumer advocate Alex Neill filed a collective claim at the Competition Appeal Tribunal on behalf of roughly <span style="font-weight: bold;" class="mycode_b">12.2 million</span> PlayStation users, seeking approximately <span style="font-weight: bold;" class="mycode_b">£2 billion</span> — about £162 to £182 per affected consumer. The core allegation: Sony's 30% storefront commission inflated digital game prices by roughly <span style="font-weight: bold;" class="mycode_b">20%</span> compared to physical equivalents, and Sony blocked publishers including EA, Ubisoft, and Epic from setting up alternative distribution channels. A ten-week trial ran through spring 2026, with closing arguments in early May. The tribunal is deliberating. A ruling in the claimants' favor would be the first legal finding that Sony's storefront model constitutes abuse of dominance.<br />
<br />
In the <span style="font-weight: bold;" class="mycode_b">Netherlands</span>, the Fair PlayStation case filed in February 2025 represents <span style="font-weight: bold;" class="mycode_b">1.7 million</span> Dutch consumers and seeks more than <span style="font-weight: bold;" class="mycode_b">€400 million</span>. The case dates harm back to November 2013 — the month the PS4 launched. Opening arguments were heard in June 2026 at the District Court of Midden-Nederland. Chair Lucia Melcherts made the connection to the disc phase-out explicitly: no discs means no second-hand market and no alternative to the PlayStation Store, so from 2028, Sony alone decides what a game costs and how long you're allowed to use it. Game preservation group Stop Killing Games publicly backed the case in August 2026.<br />
<br />
In <span style="font-weight: bold;" class="mycode_b">Portugal</span>, consumer association Ius Omnibus filed an opt-out action in August 2023 seeking more than <span style="font-weight: bold;" class="mycode_b">€235 million</span> for consumers who bought PS4 or PS5 games or PlayStation Plus since November 2013.<br />
<br />
In the <span style="font-weight: bold;" class="mycode_b">United States</span>, the antitrust case filed in 2021 over the third-party retailer code ban has been through a rough road. Sony proposed a <span style="font-weight: bold;" class="mycode_b">&#36;7.85 million</span> settlement covering roughly <span style="font-weight: bold;" class="mycode_b">4.4 million</span> buyers. The judge rejected it twice — once over concerns that PlayStation Store credit payouts were effectively coupons rather than compensation, and again over issues with plaintiff service awards. A third attempt won preliminary approval in April 2026, with a final fairness hearing scheduled for October. Sony denies wrongdoing. Individual payouts are expected to be a few dollars.<br />
<br />
A separate US suit filed in May 2026 targets the tariff price hike directly, alleging Sony is pocketing a "double recovery windfall" — collecting both the inflated consumer prices and potential tariff refunds. The case is at the pleading stage.<br />
<br />
Across all fronts, aggregate exposure has been estimated at over <span style="font-weight: bold;" class="mycode_b">&#36;3 billion</span>.<br />
<br />
No court has ruled against Sony yet. Sony denies wrongdoing across the board and argues it competes in a broad platform market that includes Xbox, Nintendo, and PC. These are allegations, not findings. But the pattern is worth noting: it took decades for the market to formalize its pushback against the control instinct. Betamax didn't generate lawsuits — consumers just bought VHS. The Walkman didn't generate lawsuits — consumers just bought iPods. Those were market corrections. What's happening now is a legal correction, and it's happening because Sony's current position is so dominant in its category that the market correction can't happen the old way. There's no VHS to switch to. There's no iPod showing up with a scroll wheel and software that doesn't fight you. When the dominant platform locks the door and throws away the key, the only recourse left is the courts.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Pattern</span></span><br />
<br />
Sony is not a company that makes bad products. That's what makes this so frustrating to watch. The Walkman was genuinely revolutionary. The PlayStation 2 was the best-selling console ever made. The PS4 was a masterclass in reading the market and giving people what they wanted. Sony's engineers and designers and game developers are world-class. The problem has never been talent or technology.<br />
<br />
The problem is that Sony is structurally incapable of trusting its own success. Every dominant position gets treated not as a relationship to maintain but as a resource to extract. The Walkman owned portable music for twenty years, and when the digital transition arrived, Sony Music's piracy fears overruled Sony Electronics' ability to build what customers wanted. The PS2 owned console gaming so completely that the PS3 team assumed the dominance was unconditional and priced accordingly. The PS4 rebuilt everything that goodwill is supposed to be, and within one console generation the corporate arm dismantled the open ecosystem that earned it.<br />
<br />
A company that cannot agree internally cannot build for its customers. The hardware people want open ecosystems because open ecosystems sell hardware. The content people want closed ecosystems because closed ecosystems protect licensing revenue. The corporate people want maximum extraction because extraction shows up on this quarter's earnings call. When these three priorities collide — and at Sony, they always collide — the customer-facing product is the thing that absorbs the damage.<br />
<br />
This isn't a technology problem. It isn't a leadership problem in the sense that one CEO could fix it. It's a structural problem. Sony is organized as a collection of divisions with competing incentives, and until that structure changes, the pattern will repeat. The format will be different. The technology will be different. The decade will be different. But somewhere inside Sony, a team will build something people love, and somewhere else inside Sony, another team will find a way to lock it down, extract from it, or kill it — because their balance sheet says that's the rational move, even when the company's history says it's suicide.<br />
<br />
The PS4 proved the pattern is a choice. Sony chose correctly once. It chose to trust its customers, price fairly, compete on product quality, and let the market reward the approach. The market did. One hundred and seventeen million units. And then Sony looked at all that goodwill, all that trust, all that installed base loyalty — and it did what it always does.<br />
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-style: italic;" class="mycode_i">This piece is open to discussion.</span></div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">─── ◆ ───</span><br />
<span style="font-style: italic;" class="mycode_i"><br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sources</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">The Civil War and Divisional Structure</span><br />
<br />
Frank Rose, "The Civil War Inside Sony," Wired, February 2003.<br />
<a href="https://www.frankrose.com/reporting/the-civil-war-inside-sony/" target="_blank" rel="noopener" class="mycode_url">https://www.frankrose.com/reporting/the-...side-sony/</a><br />
<br />
Walter Isaacson, Steve Jobs (Simon &amp; Schuster, 2011). Tim Cook on Apple's single P&amp;L structure vs. Sony's divisions.<br />
<br />
Rob Enderle quote ("a company at war with itself") widely cited in contemporaneous coverage of Sony's Walkman-to-iPod transition, attributed to The Enderle Group.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Betamax vs. VHS</span><br />
<br />
VHS market share estimates (60–70% by 1980, ~75% by 1981, ~92.5% by 1984) drawn from multiple industry histories and technology retrospectives. Sony began manufacturing VHS recorders in 1988.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Walkman and iPod</span><br />
<br />
Sony Walkman production figures (200,020,000 cassette units; 400M+ across all formats as of March 2010) reported by TechCrunch and CNN at the time of Sony's October 2010 announcement ending cassette Walkman production.<br />
<br />
NPD Group data on iPod US market share (~31% January 2004, ~65% January 2005, ~74% July 2005, 76.9% May 2006).<br />
<br />
Dartmouth Center for Digital Strategies, "From Walkman to iPod: What Music Tech Teaches Us About Innovation."<br />
<a href="https://digitalstrategies.tuck.dartmouth.edu/from-walkman-to-ipod-what-music-tech-teaches-us-about-innovation/" target="_blank" rel="noopener" class="mycode_url">https://digitalstrategies.tuck.dartmouth...nnovation/</a><br />
<br />
INSEAD Knowledge, "Innovation Success: How the Apple iPod Broke All Sony's Walkman Rules."<br />
<a href="https://knowledge.insead.edu/strategy/innovation-success-how-apple-ipod-broke-all-sonys-walkman-rules" target="_blank" rel="noopener" class="mycode_url">https://knowledge.insead.edu/strategy/in...kman-rules</a><br />
<br />
Sony shut the Connect store in August 2007 and abandoned ATRAC in favor of MP3/WMA/AAC.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">MiniDisc</span><br />
<br />
Launch price (~&#36;750, 1992), first-year US sales (fewer than 50,000 units), and timeline (shipments ended 2011–2013) drawn from technology histories and contemporary reporting.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Memory Stick and UMD</span><br />
<br />
TechRadar, "Sony moving into CompactFlash market" — documenting Sony's eventual concession on proprietary memory formats.<br />
<a href="https://www.techradar.com/news/portable-devices/portable-media/photography-video-capture/cameras/upgrades/computing-components/storage/sony-moving-into-compactflash-market-149121" target="_blank" rel="noopener" class="mycode_url">https://www.techradar.com/news/portable-...ket-149121</a><br />
<br />
UMD sales and usage data from Famitsu reader polls and contemporary PSP-era reporting. "Obsolete Sony" newsletter on Substack, "The Rise and Fall of UMD Movies."<br />
<a href="https://obsoletesony.substack.com/p/the-rise-and-fall-of-umd-movies" target="_blank" rel="noopener" class="mycode_url">https://obsoletesony.substack.com/p/the-...umd-movies</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Sony BMG Rootkit (2005)</span><br />
<br />
Electronic Frontier Foundation, "Sony BMG Litigation Info" — primary source for affected CD counts (22M+ total, 20M+ MediaMax, ~2M XCP), timeline, and settlement terms.<br />
<a href="https://www.eff.org/cases/sony-bmg-litigation-info" target="_blank" rel="noopener" class="mycode_url">https://www.eff.org/cases/sony-bmg-litigation-info</a><br />
<br />
EFF, "Open Letter to Sony BMG," November 14, 2005.<br />
<a href="https://www.eff.org/pages/open-letter-sony-bmg" target="_blank" rel="noopener" class="mycode_url">https://www.eff.org/pages/open-letter-sony-bmg</a><br />
<br />
EFF, "EFF Files Class Action Lawsuit Against Sony BMG," November 21, 2005.<br />
<a href="https://www.eff.org/press/archives/2005/11/21" target="_blank" rel="noopener" class="mycode_url">https://www.eff.org/press/archives/2005/11/21</a><br />
<br />
EFF, "Sony-BMG rootkit DRM in a Nutshell."<br />
<a href="https://www.eff.org/deeplinks/2005/11/sony-bmg-rootkit-drm-nutshell" target="_blank" rel="noopener" class="mycode_url">https://www.eff.org/deeplinks/2005/11/so...m-nutshell</a><br />
<br />
Thomas Hesse quote ("most people, I think, do not even know what a rootkit is, so why should they care about it?") from NPR interview, cited in EFF's Summary of Claims Against Sony-BMG.<br />
<a href="https://www.eff.org/deeplinks/2005/12/summary-claims-against-sony-bmg" target="_blank" rel="noopener" class="mycode_url">https://www.eff.org/deeplinks/2005/12/su...t-sony-bmg</a><br />
<br />
California and Texas AG settlements (&#36;1.5M combined) from state attorney general press releases (Greg Abbott, TX; Bill Lockyer, CA).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">PlayStation 3</span><br />
<br />
PS2 lifetime sales (~155–160M units) per Sony's own reporting, Statista, and Wikipedia's List of Best-Selling Game Consoles.<br />
<a href="https://en.wikipedia.org/wiki/List_of_best-selling_game_consoles" target="_blank" rel="noopener" class="mycode_url">https://en.wikipedia.org/wiki/List_of_be...e_consoles</a><br />
<br />
PS3 launch prices (&#36;499/&#36;599, November 2006), European delay (March 2007), and per-unit loss (~&#36;306.85 on 20GB model) from iSuppli teardown estimates.<br />
<br />
PS3 total hardware losses (~&#36;3.3B) widely reported via Forbes and Wired, citing Sony financial disclosures.<br />
<br />
Ken Kutaragi quotes — "work more hours to buy one" is the verified phrasing; "get a second job" is the widely used paraphrase. "Just an Xbox 1.5" is directly attributed. Kutaragi relieved of duties December 2006, retirement announced April 2007, replaced by Kazuo Hirai.<br />
<br />
PS3 lifetime sales (~87M units) per Sony's reporting.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">PlayStation 4</span><br />
<br />
E3 2013 presentation (June 10–11, 2013). Jack Tretton's used-game and no-online-requirement statements. Sony's "Official PlayStation Used Game Instructional Video" released alongside the conference.<br />
<br />
PS4 price at launch: &#36;399 (&#36;100 below Xbox One at &#36;499).<br />
<br />
PS4 lifetime sales (~117M units) per Sony's reporting. Xbox One estimated at ~58M units.<br />
<br />
Vintage is the New Old, "Which Sold More PS4 or Xbox One?" — comparative sales analysis.<br />
<a href="https://www.vintageisthenewold.com/faq/which-sold-more-ps4-or-xbox-one" target="_blank" rel="noopener" class="mycode_url">https://www.vintageisthenewold.com/faq/w...r-xbox-one</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">PS5 Anti-Consumer Pattern</span><br />
<br />
Sony ended third-party digital download codes effective April 1, 2019. Confirmed to The Verge by Sony.<br />
<br />
Sony PS5 price hike (&#36;50 across line) announced August 20, 2025.<br />
<br />
Forbes, "Sony Hikes PlayStation Console Prices By &#36;50 Amid Trump Tariffs."<br />
<a href="https://www.forbes.com/sites/conormurray/2025/08/20/sony-hikes-playstation-console-prices-by-50-amid-trump-tariffs/" target="_blank" rel="noopener" class="mycode_url">https://www.forbes.com/sites/conormurray...p-tariffs/</a><br />
<br />
GameSpot, "PS5 Price Hikes Announced For The US."<br />
<a href="https://www.gamespot.com/articles/ps5-price-hikes-announced-for-the-us-every-system-going-up-by-50/1100-6534127/" target="_blank" rel="noopener" class="mycode_url">https://www.gamespot.com/articles/ps5-pr...0-6534127/</a><br />
<br />
Physical disc production ending January 2028 — announced July 1, 2026.<br />
<br />
PlayStation Blog (Sid Shuman), official announcement.<br />
<a href="https://blog.playstation.com/2026/07/01/physical-disc-production-ending-in-january-2028-for-new-games-releasing-on-playstation-consoles/" target="_blank" rel="noopener" class="mycode_url">https://blog.playstation.com/2026/07/01/...-consoles/</a><br />
<br />
TechCrunch, "Sony to end physical PlayStation game disc production in 2028."<br />
<a href="https://techcrunch.com/2026/07/01/sony-to-end-physical-playstation-game-discs-in-2028/" target="_blank" rel="noopener" class="mycode_url">https://techcrunch.com/2026/07/01/sony-t...s-in-2028/</a><br />
<br />
CNBC, "PlayStation will end physical disc production for new games in 2028."<br />
<a href="https://www.cnbc.com/2026/07/01/sony-playstation-physical-disc-production-2028.html" target="_blank" rel="noopener" class="mycode_url">https://www.cnbc.com/2026/07/01/sony-pla...-2028.html</a><br />
<br />
Game Informer, "PlayStation Will Cease Production Of Physical Discs For New Games."<br />
<a href="https://gameinformer.com/2026/07/01/playstation-will-cease-production-of-physical-discs-for-new-games-in-january-2028" target="_blank" rel="noopener" class="mycode_url">https://gameinformer.com/2026/07/01/play...nuary-2028</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Current Litigation (2025–2026)</span><br />
<br />
United Kingdom — "PlayStation You Owe Us"<br />
<br />
Alex Neill Class Representative Limited v. Sony, Competition Appeal Tribunal. Filed August 2022, Collective Proceedings Order granted November 21, 2023. Class: ~12.2M UK users. Estimated damages: ~£1.97B (~£182 per person including interest). Ten-week trial ran March 10 – May 8, 2026. Judgment pending.<br />
<br />
PlayStation You Owe Us — official claim website.<br />
<a href="https://playstationyouoweus.co.uk/" target="_blank" rel="noopener" class="mycode_url">https://playstationyouoweus.co.uk/</a><br />
<br />
LegalClarity, "Sony Class Action Lawsuit UK: The £2 Billion Claim."<br />
<a href="https://legalclarity.org/sony-class-action-lawsuit-uk-the-2-billion-claim/" target="_blank" rel="noopener" class="mycode_url">https://legalclarity.org/sony-class-acti...ion-claim/</a><br />
<br />
GosuGamers, "Sony faces US&#36;2.7 billion UK lawsuit over PlayStation Store pricing."<br />
<a href="https://www.gosugamers.net/entertainment/news/78126-sony-faces-us-2-7-billion-uk-lawsuit-over-playstation-store-pricing" target="_blank" rel="noopener" class="mycode_url">https://www.gosugamers.net/entertainment...re-pricing</a><br />
<br />
Netherlands — "Fair PlayStation"<br />
<br />
Stichting Massaschade &amp; Consument v. Sony, District Court of Midden-Nederland. Filed February 2025 under WAMCA opt-out framework. ~1.7M Dutch consumers, seeking €400M+. Opening arguments heard June 29, 2026. Chair Lucia Melcherts quoted on disc phase-out and pricing control. Stop Killing Games backed the case August 10, 2026.<br />
<br />
TechTimes, "PlayStation Store Antitrust Case Reaches Dutch Court: 1.7 Million Gamers Seek Refunds."<br />
<a href="https://www.techtimes.com/articles/319263/20260629/playstation-store-antitrust-case-reaches-dutch-court-17-million-gamers-seek-refunds.htm" target="_blank" rel="noopener" class="mycode_url">https://www.techtimes.com/articles/31926...efunds.htm</a><br />
<br />
Portugal — Ius Omnibus<br />
<br />
Ius Omnibus v. Sony, Competition, Regulation and Supervision Court (TCRS). Filed August 3, 2023. Seeking €235M+ for Portuguese consumers (PS4/PS5 games and PS Plus purchases from November 29, 2013). Ongoing.<br />
<br />
United States — Caccuri v. Sony (Antitrust)<br />
<br />
Caccuri v. Sony Interactive Entertainment LLC, N.D. Cal. Filed May 2021. &#36;7.85M proposed settlement covering ~4.4M US buyers (April 2019–December 2023). Rejected twice by Judge Araceli Martínez-Olguín (July 2025, January 2026). Preliminary approval on third attempt April 8, 2026. Final fairness hearing October 15, 2026. Sony denies wrongdoing.<br />
<br />
TNW Gaming, "Sony's &#36;7.85M PlayStation Store antitrust settlement has been preliminarily approved."<br />
<a href="https://thenextweb.com/news/sony-playstation-store-7-85-million-antitrust-settlement-digital-games" target="_blank" rel="noopener" class="mycode_url">https://thenextweb.com/news/sony-playsta...ital-games</a><br />
<br />
ClassAction.org, "&#36;7.85M Sony Antitrust Settlement Over Alleged Digital PlayStation Games Monopoly Approved by Court."<br />
<a href="https://www.classaction.org/news/7.85m-sony-antitrust-settlement-over-alleged-digital-playstation-games-monopoly-approved-by-court" target="_blank" rel="noopener" class="mycode_url">https://www.classaction.org/news/7.85m-s...d-by-court</a><br />
<br />
United States — Walker v. Sony (Tariff Windfall)<br />
<br />
Walker et al v. Sony Interactive Entertainment LLC, N.D. Cal. Filed May 6, 2026. Plaintiffs Amorey Walker and Bryce Foster-Quarles. Alleges "double recovery windfall" from tariff price hikes retained after Supreme Court struck down IEEPA tariffs (February 2026). Initial case management conference August 3, 2026. Assigned to Magistrate Judge Sallie Kim.<br />
<br />
Kotaku, "Players Sue Sony Over PS5 Tariff 'Windfall'."<br />
<a href="https://kotaku.com/sony-is-being-sued-for-allegedly-retaining-substantial-windfall-generated-by-illegal-tariffs-2000697029" target="_blank" rel="noopener" class="mycode_url">https://kotaku.com/sony-is-being-sued-fo...2000697029</a><br />
<br />
Complex, "PS5 Players Hit Sony With Proposed Class Action Over Tariff 'Windfall'."<br />
<a href="https://www.complex.com/pop-culture/a/bernadette-giacomazzo/ps5-class-action-lawsuit-sony" target="_blank" rel="noopener" class="mycode_url">https://www.complex.com/pop-culture/a/be...wsuit-sony</a><br />
<br />
Outlook Respawn, "Sony Tariff Lawsuit Expands Pressure Over PS5 Price Hikes."<br />
<a href="https://respawn.outlookindia.com/gaming/gaming-news/sony-tariff-lawsuit-expands-pressure-over-ps5-price-hikes" target="_blank" rel="noopener" class="mycode_url">https://respawn.outlookindia.com/gaming/...rice-hikes</a><br />
<br />
Multi-Jurisdiction Overview<br />
<br />
Shattered.io, "PlayStation Store Lawsuit 2026: Sony Faces Three-Country Legal Battle."<br />
<a href="https://shattered.io/playstation-store-lawsuit-2026/" target="_blank" rel="noopener" class="mycode_url">https://shattered.io/playstation-store-lawsuit-2026/</a><br />
<br />
The Tech Marketer, "PlayStation Store Lawsuit 2026: Sony Faces Three-Country Legal Battle Over Monopoly Pricing and Misleading Purchase Terms."<br />
<a href="https://thetechmarketer.com/playstation-store-lawsuit-2026/" target="_blank" rel="noopener" class="mycode_url">https://thetechmarketer.com/playstation-...suit-2026/</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Steve Heckler Quote (2000)</span><br />
<br />
Sony Pictures Entertainment US SVP Steve Heckler at the Americas Conference on Information Systems, August 2000. Reported by The Register, August 23, 2000. Sony backtracked August 29, 2000, claiming Heckler was "quoted out of context."<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Additional Format History</span><br />
<br />
Fast Company catalogued Sony's proprietary format failures from Betamax through Memory Stick Micro.<br />
<br />
Statista, "Global Apple iPod sales 2006–2014."<br />
<a href="https://www.statista.com/statistics/263405/global-apple-ipod-sales-since-1st-quarter-2006" target="_blank" rel="noopener" class="mycode_url">https://www.statista.com/statistics/2634...arter-2006</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Note on Sources</span><br />
<br />
Market share figures for Betamax/VHS are widely accepted estimates from industry histories, not a single audited dataset. Console lifetime sales come from Sony's own financial reporting. The PS3 loss figure (&#36;3.3B) is the most commonly cited estimate; some accounts place it higher. All ongoing litigation figures reflect claims by plaintiffs and claimant organizations — no court has ruled against Sony in the current storefront cases as of August 2026. Sony denies wrongdoing across all active proceedings.</span></div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Company at War with Itself</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Five decades of Sony building things people love<br />
and then tearing them apart from the inside</span></span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
In 2013, Sony released a thirty-second video that became one of the most effective pieces of marketing in gaming history. It showed two PlayStation executives handing a disc to each other. That was it. The entire joke was that sharing a game on PlayStation required no online check-in, no licensing server, no corporate permission — you just handed someone the disc. It was a direct shot at Microsoft, whose Xbox One announcement had just tried to kill the used game market with always-online DRM. The gaming world loved it. Sony looked like the company that understood its customers. The PS4 went on to sell <span style="font-weight: bold;" class="mycode_b">117 million units</span>, roughly doubling the Xbox One.<br />
<br />
In 2026, Sony announced it would stop producing physical game discs entirely by <span style="font-weight: bold;" class="mycode_b">January 2028</span>. It introduced online DRM verification for digital purchases. It had already pulled digital download codes from every third-party retailer years earlier, funneling all digital sales through its own storefront at a <span style="font-weight: bold;" class="mycode_b">30% commission</span>. The company that made a viral video celebrating physical game sharing had quietly built the exact system it once mocked — and then gone further than Microsoft ever tried to.<br />
<br />
This is not a story about a company that lost its way. This is a story about a company that has been at war with itself for fifty years, winning and losing the same fight over and over, because one side of the building keeps creating things people love and the other side keeps trying to lock them down. The builders versus the protectors. And the protectors keep winning.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Civil War</span></span><br />
<br />
Rob Enderle, a technology analyst who covered Sony through its peak years, put it as cleanly as anyone ever has: Sony is "a company at war with itself." That diagnosis wasn't about one product or one bad quarter. It was about a structural flaw baked into the company's DNA — the fact that Sony is simultaneously a hardware manufacturer that needs open ecosystems to sell devices <span style="font-style: italic;" class="mycode_i">and</span> a content owner that needs closed ecosystems to protect revenue. Those two goals are fundamentally incompatible, and Sony has never resolved the contradiction. It just lets whichever side has more internal power at the moment set the agenda, and the customers deal with the fallout.<br />
<br />
Steve Jobs saw this from the outside and used Sony explicitly as Apple's cautionary tale. In Walter Isaacson's biography, Jobs and Tim Cook explained why Apple runs a single profit-and-loss structure across the whole company rather than splitting into autonomous divisions. The point was simple: if your hardware division and your content division are measured on separate balance sheets, they will optimize for different things. They will fight each other. They will block each other's products. They will kill things that are good for the customer but threatening to one division's quarterly numbers. Apple structured itself specifically to avoid becoming Sony.<br />
<br />
Sony never made that structural fix. The result is a company that periodically produces something extraordinary — the Walkman, the PlayStation 2, the PS4 — and then watches it get consumed from the inside by the part of the organization that sees customers as a revenue extraction problem rather than a loyalty asset.<br />
<br />
That pattern is the whole story. Everything else is just examples.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Format Graveyard</span></span><br />
<br />
Sony's relationship with proprietary formats reads like a clinical case study in the same mistake on repeat. Not once. Not twice. Across decades, across divisions, across leadership changes — the same instinct, the same outcome.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Betamax</span> launched in 1975 with a genuine technical edge over VHS — better picture quality, more compact tapes. Sony treated it as a format they would own and control, restricting licensing and lobbying Japan's Ministry of International Trade to make Betamax the national standard under Sony's terms. JVC took the opposite approach with VHS: license it to everyone. Matsushita, Panasonic, RCA, Sharp, Hitachi, Mitsubishi — anyone who wanted to build a VHS machine could. The open ecosystem flooded the market with cheaper players at every price point. More players meant more tapes. More tapes meant more studio support. More studio support meant more reason to buy VHS. By <span style="font-weight: bold;" class="mycode_b">1981</span>, VHS held roughly <span style="font-weight: bold;" class="mycode_b">75% of the US market</span>. By <span style="font-weight: bold;" class="mycode_b">1984</span>, it was over <span style="font-weight: bold;" class="mycode_b">92%</span>. Sony surrendered and started making VHS machines in <span style="font-weight: bold;" class="mycode_b">1988</span>.<br />
<br />
The lesson was obvious: openness and consumer utility beat proprietary control and marginal technical superiority. Sony's takeaway was apparently that Betamax just wasn't proprietary <span style="font-style: italic;" class="mycode_i">enough</span>.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">MiniDisc</span> arrived in 1992. Technically strong — rewritable, skip-resistant, compact. But the launch price was around <span style="font-weight: bold;" class="mycode_b">&#36;750</span>, the prerecorded catalog was thin because labels saw no reason to support another Sony-controlled format, and the software side was strangled with DRM restrictions. Sony sold fewer than <span style="font-weight: bold;" class="mycode_b">50,000 players</span> in the US in the first year. By the time Sony declared 1998 the "Year of the MiniDisc" and pushed a major marketing campaign, the actual year of 1998 belonged to the MP3. MiniDisc Walkman shipments ended in 2011. All MD device shipments ended in March 2013.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Memory Stick</span> was Sony's answer to the SD card — a proprietary flash memory format that only worked in Sony devices, cost more than the open standard, and offered no technical advantage that justified the premium. Sony maintained it for roughly nine years before finally conceding and adopting SD cards. The entire exercise existed because Sony would rather sell you a worse product that they controlled than a better product that used an open standard.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">UMD</span> — the Universal Media Disc — shipped with the PSP in 2004. A proprietary optical disc locked to a single device. The movie releases rarely topped <span style="font-weight: bold;" class="mycode_b">200,000 units</span> sold. A Famitsu reader poll ranked UMD video among the least-used PSP features. When Sony launched the disc-less PSP Go, it promised a conversion program to let existing UMD owners access their games digitally. The program was quietly abandoned.<br />
<br />
Fast Company once ran a piece cataloguing what it called Sony's long list of format failures. Blu-ray is the notable exception — it beat HD DVD — and even that succeeded partly because the PS3 served as a loss-leader Trojan horse that put a Blu-ray player in millions of living rooms whether buyers wanted one or not. The one format war Sony won required subsidizing it with a console that lost <span style="font-weight: bold;" class="mycode_b">&#36;3.3 billion</span>.<br />
<br />
Every one of these follows the same script. Sony builds something technically sound, wraps it in proprietary restrictions, charges a premium for the privilege of being locked in, watches the open alternative win on ecosystem size and consumer freedom, and then moves on to the next format without ever questioning the underlying approach.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Rootkit</span></span><br />
<br />
Before we get to PlayStation, there is one episode that deserves its own section because it reveals the corporate instinct at its most naked.<br />
<br />
In 2005, security researcher Mark Russinovich discovered that certain Sony BMG audio CDs — regular music CDs you'd buy at a store — were secretly installing software on Windows PCs when played. The software used rootkit techniques to hide itself deep in the operating system, and it created security vulnerabilities that actual malware quickly exploited. Symantec found the first virus cloaking itself using Sony's rootkit within weeks of the discovery.<br />
<br />
Sony BMG had shipped over <span style="font-weight: bold;" class="mycode_b">22 million affected CDs</span> across more than a hundred titles. Over <span style="font-weight: bold;" class="mycode_b">20 million</span> carried one copy-protection program called MediaMax. Another roughly <span style="font-weight: bold;" class="mycode_b">2 million</span> carried a more aggressive program called XCP. None of this was disclosed on the packaging. Sony had secretly compromised the computers of paying customers — people who walked into a store, bought a CD with money, and took it home — because it was more afraid of those customers copying the music than it was of violating their trust.<br />
<br />
The Electronic Frontier Foundation issued an open letter. Class action lawsuits followed. Sony settled with consumers, submitted to independent DRM audits for two years, and paid <span style="font-weight: bold;" class="mycode_b">&#36;1.5 million</span> to the California and Texas attorneys general plus additional multi-state settlements. Sony BMG suspended CD copy protection entirely by early 2007.<br />
<br />
This wasn't a rogue employee or a miscalculation. This was a corporate content division that looked at its own customers and saw pirates first and people second. It's the same instinct that killed Betamax and strangled MiniDisc and hobbled the Walkman — the need to control the user's experience so completely that you'd rather compromise their computer than trust them with an unprotected disc. The rootkit is just the version where the control instinct crossed a legal line instead of just a market one.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Five Hundred and Ninety-Nine US Dollars</span></span><br />
<br />
The PlayStation 2 is the best-selling console in history at roughly <span style="font-weight: bold;" class="mycode_b">155 million units</span>. It outsold the original Xbox by about six to one. Sony entered the seventh console generation with the kind of dominance that should have been nearly impossible to squander.<br />
<br />
They squandered it.<br />
<br />
The PS3 launched in November 2006 at <span style="font-weight: bold;" class="mycode_b">&#36;499</span> for the base model and <span style="font-weight: bold;" class="mycode_b">&#36;599</span> for the premium — a price point that immediately became a meme and remains a punchline twenty years later. Sony had built the console around the Cell processor, an exotic architecture that was a nightmare for developers, and included a Blu-ray drive that was expensive to manufacture and whose blue-laser diodes were in such short supply that the European launch was delayed until March 2007, missing Christmas entirely. Market research firm iSuppli estimated Sony was losing over <span style="font-weight: bold;" class="mycode_b">&#36;300 per unit</span> sold. The total PS3 hardware losses reached an estimated <span style="font-weight: bold;" class="mycode_b">&#36;3.3 billion</span>.<br />
<br />
Ken Kutaragi, the PlayStation creator, set the tone for the era. On the price, he said Sony wanted consumers to think about working "more hours" to buy one — a line widely paraphrased as telling gamers to get a second job. He dismissed the Xbox 360, which had a full year head start and was already building momentum, as "just an Xbox 1.5." The confidence wasn't earned — it was inherited from the PS2 era and spent like it was infinite.<br />
<br />
Kutaragi was relieved of day-to-day duties in December 2006, two months after launch, and announced his retirement in April 2007. The PS3 eventually clawed back through price cuts, the Slim redesign, and strong exclusives like Uncharted and The Last of Us, finishing at roughly <span style="font-weight: bold;" class="mycode_b">87 million units</span> — essentially tied with the Xbox 360. But "tied" is a catastrophic result when you started from a position of six-to-one dominance. The PS3 proved that even PlayStation wasn't immune to the Sony pattern: take a dominant position, assume the customers have nowhere else to go, price and design for the company's priorities instead of the player's, and watch the lead evaporate.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Comeback That Didn't Stick</span></span><br />
<br />
This is the part of the story that makes everything after it so much worse.<br />
<br />
At E3 2013, Microsoft walked into its Xbox One reveal and told the gaming world that its new console would require near-daily online check-ins and restrict the resale of used games. The backlash was immediate and violent. Sony saw the opening and drove a truck through it.<br />
<br />
Jack Tretton, the head of Sony's American PlayStation division, took the stage and made it clear: the PS4 would support used games, require no online connection for single-player, and impose no restrictions on how you shared your library. Then Sony released the disc-sharing video — two executives simply handing a game to each other, captioned with instructions for sharing on PS4. The crowd erupted. The internet did the rest.<br />
<br />
But it wasn't just the messaging. Sony priced the PS4 at <span style="font-weight: bold;" class="mycode_b">&#36;399</span>, a full <span style="font-weight: bold;" class="mycode_b">&#36;100</span> below the Xbox One. It was a developer-friendly architecture. It was straightforward, affordable, and positioned entirely around what players actually wanted. The result was <span style="font-weight: bold;" class="mycode_b">117 million units</span> sold — roughly double the Xbox One at an estimated <span style="font-weight: bold;" class="mycode_b">58 million</span>.<br />
<br />
The PS4 era is proof that the pattern is a choice. When Sony chooses openness and consumer goodwill over control and extraction, it wins — not narrowly, but overwhelmingly. The PS4 didn't succeed because of clever marketing or lucky timing. It succeeded because Sony, for one generation, actually aligned the entire company behind what customers wanted instead of what the content and corporate divisions wanted to protect.<br />
<br />
Tretton said at the time that Sony was "focused on delivering what gamers want most without imposing restrictions or devaluing their purchases." That sentence reads differently now.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Regression</span></span><br />
<br />
What followed the PS4's dominance is the most predictable chapter in this entire story, because it's the same chapter Sony has written after every success.<br />
<br />
The first move was quiet. On <span style="font-weight: bold;" class="mycode_b">April 1, 2019</span>, Sony ended its Global Digital at Retail program, cutting off Amazon, GameStop, Best Buy, and every other third-party retailer from selling PlayStation digital download codes. If you wanted to buy a digital PlayStation game, you now had exactly one option: the PlayStation Store, where Sony takes a <span style="font-weight: bold;" class="mycode_b">30% cut</span> of every transaction. The company framed this as an effort to "align key businesses globally." What it aligned was every digital dollar through Sony's own register.<br />
<br />
Then the PS5 era accelerated the pattern. In August 2025, Sony announced a <span style="font-weight: bold;" class="mycode_b">&#36;50 price increase</span> across the entire PS5 line, citing tariffs and "a challenging economic environment." Digital Edition went to <span style="font-weight: bold;" class="mycode_b">&#36;499</span>. Standard to <span style="font-weight: bold;" class="mycode_b">&#36;549</span>. The Pro to <span style="font-weight: bold;" class="mycode_b">&#36;749</span>. The tariffs were real — China at 30%, Japan at 15%, Vietnam at 20%. But when the Supreme Court struck down those tariffs, Sony kept the higher prices. The justification disappeared. The price didn't.<br />
<br />
In July 2026, Sony announced that physical disc production for all new PlayStation games would end in <span style="font-weight: bold;" class="mycode_b">January 2028</span>. The announcement simultaneously confirmed the closure of the PS3 and PS Vita digital stores. No other major console manufacturer has gone this far. The practical effect is the elimination of the last competitive check on PlayStation Store pricing — no physical discs means no second-hand market, no retailer competition, no price discovery outside Sony's own storefront.<br />
<br />
And then came the DRM. Reports surfaced of a new online verification system for digital purchases — a "valid period" check that requires periodic server contact to confirm you still own what you paid for. The comparisons to the 2013 Xbox One announcement were immediate and unavoidable. Sony had gone from mocking always-online DRM to implementing it within a single console generation.<br />
<br />
To be clear about the market realities here: the shift to digital is genuine. Physical disc sales have been declining for years. Tariffs created real cost pressure. These are not invented justifications — they are real conditions that every hardware company faces. The question is not whether Sony had reasons to make these moves. The question is why Sony resolves every ambiguous decision in the same direction. When tariffs hit, they raised prices. When tariffs were struck down, they kept them. When digital overtook physical, they didn't just ride the trend — they killed the alternative and locked the door behind it. When they had the option to maintain competitive pricing through third-party retailers, they eliminated the retailers. Every fork in the road, every moment of ambiguity, Sony turns toward control and extraction. That's not a series of independent business decisions. That's a pattern.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Reckoning</span></span><br />
<br />
The lawsuits arrived from everywhere at once.<br />
<br />
In the <span style="font-weight: bold;" class="mycode_b">United Kingdom</span>, consumer advocate Alex Neill filed a collective claim at the Competition Appeal Tribunal on behalf of roughly <span style="font-weight: bold;" class="mycode_b">12.2 million</span> PlayStation users, seeking approximately <span style="font-weight: bold;" class="mycode_b">£2 billion</span> — about £162 to £182 per affected consumer. The core allegation: Sony's 30% storefront commission inflated digital game prices by roughly <span style="font-weight: bold;" class="mycode_b">20%</span> compared to physical equivalents, and Sony blocked publishers including EA, Ubisoft, and Epic from setting up alternative distribution channels. A ten-week trial ran through spring 2026, with closing arguments in early May. The tribunal is deliberating. A ruling in the claimants' favor would be the first legal finding that Sony's storefront model constitutes abuse of dominance.<br />
<br />
In the <span style="font-weight: bold;" class="mycode_b">Netherlands</span>, the Fair PlayStation case filed in February 2025 represents <span style="font-weight: bold;" class="mycode_b">1.7 million</span> Dutch consumers and seeks more than <span style="font-weight: bold;" class="mycode_b">€400 million</span>. The case dates harm back to November 2013 — the month the PS4 launched. Opening arguments were heard in June 2026 at the District Court of Midden-Nederland. Chair Lucia Melcherts made the connection to the disc phase-out explicitly: no discs means no second-hand market and no alternative to the PlayStation Store, so from 2028, Sony alone decides what a game costs and how long you're allowed to use it. Game preservation group Stop Killing Games publicly backed the case in August 2026.<br />
<br />
In <span style="font-weight: bold;" class="mycode_b">Portugal</span>, consumer association Ius Omnibus filed an opt-out action in August 2023 seeking more than <span style="font-weight: bold;" class="mycode_b">€235 million</span> for consumers who bought PS4 or PS5 games or PlayStation Plus since November 2013.<br />
<br />
In the <span style="font-weight: bold;" class="mycode_b">United States</span>, the antitrust case filed in 2021 over the third-party retailer code ban has been through a rough road. Sony proposed a <span style="font-weight: bold;" class="mycode_b">&#36;7.85 million</span> settlement covering roughly <span style="font-weight: bold;" class="mycode_b">4.4 million</span> buyers. The judge rejected it twice — once over concerns that PlayStation Store credit payouts were effectively coupons rather than compensation, and again over issues with plaintiff service awards. A third attempt won preliminary approval in April 2026, with a final fairness hearing scheduled for October. Sony denies wrongdoing. Individual payouts are expected to be a few dollars.<br />
<br />
A separate US suit filed in May 2026 targets the tariff price hike directly, alleging Sony is pocketing a "double recovery windfall" — collecting both the inflated consumer prices and potential tariff refunds. The case is at the pleading stage.<br />
<br />
Across all fronts, aggregate exposure has been estimated at over <span style="font-weight: bold;" class="mycode_b">&#36;3 billion</span>.<br />
<br />
No court has ruled against Sony yet. Sony denies wrongdoing across the board and argues it competes in a broad platform market that includes Xbox, Nintendo, and PC. These are allegations, not findings. But the pattern is worth noting: it took decades for the market to formalize its pushback against the control instinct. Betamax didn't generate lawsuits — consumers just bought VHS. The Walkman didn't generate lawsuits — consumers just bought iPods. Those were market corrections. What's happening now is a legal correction, and it's happening because Sony's current position is so dominant in its category that the market correction can't happen the old way. There's no VHS to switch to. There's no iPod showing up with a scroll wheel and software that doesn't fight you. When the dominant platform locks the door and throws away the key, the only recourse left is the courts.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">The Pattern</span></span><br />
<br />
Sony is not a company that makes bad products. That's what makes this so frustrating to watch. The Walkman was genuinely revolutionary. The PlayStation 2 was the best-selling console ever made. The PS4 was a masterclass in reading the market and giving people what they wanted. Sony's engineers and designers and game developers are world-class. The problem has never been talent or technology.<br />
<br />
The problem is that Sony is structurally incapable of trusting its own success. Every dominant position gets treated not as a relationship to maintain but as a resource to extract. The Walkman owned portable music for twenty years, and when the digital transition arrived, Sony Music's piracy fears overruled Sony Electronics' ability to build what customers wanted. The PS2 owned console gaming so completely that the PS3 team assumed the dominance was unconditional and priced accordingly. The PS4 rebuilt everything that goodwill is supposed to be, and within one console generation the corporate arm dismantled the open ecosystem that earned it.<br />
<br />
A company that cannot agree internally cannot build for its customers. The hardware people want open ecosystems because open ecosystems sell hardware. The content people want closed ecosystems because closed ecosystems protect licensing revenue. The corporate people want maximum extraction because extraction shows up on this quarter's earnings call. When these three priorities collide — and at Sony, they always collide — the customer-facing product is the thing that absorbs the damage.<br />
<br />
This isn't a technology problem. It isn't a leadership problem in the sense that one CEO could fix it. It's a structural problem. Sony is organized as a collection of divisions with competing incentives, and until that structure changes, the pattern will repeat. The format will be different. The technology will be different. The decade will be different. But somewhere inside Sony, a team will build something people love, and somewhere else inside Sony, another team will find a way to lock it down, extract from it, or kill it — because their balance sheet says that's the rational move, even when the company's history says it's suicide.<br />
<br />
The PS4 proved the pattern is a choice. Sony chose correctly once. It chose to trust its customers, price fairly, compete on product quality, and let the market reward the approach. The market did. One hundred and seventeen million units. And then Sony looked at all that goodwill, all that trust, all that installed base loyalty — and it did what it always does.<br />
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-style: italic;" class="mycode_i">This piece is open to discussion.</span></div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">─── ◆ ───</span><br />
<span style="font-style: italic;" class="mycode_i"><br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sources</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">The Civil War and Divisional Structure</span><br />
<br />
Frank Rose, "The Civil War Inside Sony," Wired, February 2003.<br />
<a href="https://www.frankrose.com/reporting/the-civil-war-inside-sony/" target="_blank" rel="noopener" class="mycode_url">https://www.frankrose.com/reporting/the-...side-sony/</a><br />
<br />
Walter Isaacson, Steve Jobs (Simon &amp; Schuster, 2011). Tim Cook on Apple's single P&amp;L structure vs. Sony's divisions.<br />
<br />
Rob Enderle quote ("a company at war with itself") widely cited in contemporaneous coverage of Sony's Walkman-to-iPod transition, attributed to The Enderle Group.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Betamax vs. VHS</span><br />
<br />
VHS market share estimates (60–70% by 1980, ~75% by 1981, ~92.5% by 1984) drawn from multiple industry histories and technology retrospectives. Sony began manufacturing VHS recorders in 1988.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Walkman and iPod</span><br />
<br />
Sony Walkman production figures (200,020,000 cassette units; 400M+ across all formats as of March 2010) reported by TechCrunch and CNN at the time of Sony's October 2010 announcement ending cassette Walkman production.<br />
<br />
NPD Group data on iPod US market share (~31% January 2004, ~65% January 2005, ~74% July 2005, 76.9% May 2006).<br />
<br />
Dartmouth Center for Digital Strategies, "From Walkman to iPod: What Music Tech Teaches Us About Innovation."<br />
<a href="https://digitalstrategies.tuck.dartmouth.edu/from-walkman-to-ipod-what-music-tech-teaches-us-about-innovation/" target="_blank" rel="noopener" class="mycode_url">https://digitalstrategies.tuck.dartmouth...nnovation/</a><br />
<br />
INSEAD Knowledge, "Innovation Success: How the Apple iPod Broke All Sony's Walkman Rules."<br />
<a href="https://knowledge.insead.edu/strategy/innovation-success-how-apple-ipod-broke-all-sonys-walkman-rules" target="_blank" rel="noopener" class="mycode_url">https://knowledge.insead.edu/strategy/in...kman-rules</a><br />
<br />
Sony shut the Connect store in August 2007 and abandoned ATRAC in favor of MP3/WMA/AAC.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">MiniDisc</span><br />
<br />
Launch price (~&#36;750, 1992), first-year US sales (fewer than 50,000 units), and timeline (shipments ended 2011–2013) drawn from technology histories and contemporary reporting.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Memory Stick and UMD</span><br />
<br />
TechRadar, "Sony moving into CompactFlash market" — documenting Sony's eventual concession on proprietary memory formats.<br />
<a href="https://www.techradar.com/news/portable-devices/portable-media/photography-video-capture/cameras/upgrades/computing-components/storage/sony-moving-into-compactflash-market-149121" target="_blank" rel="noopener" class="mycode_url">https://www.techradar.com/news/portable-...ket-149121</a><br />
<br />
UMD sales and usage data from Famitsu reader polls and contemporary PSP-era reporting. "Obsolete Sony" newsletter on Substack, "The Rise and Fall of UMD Movies."<br />
<a href="https://obsoletesony.substack.com/p/the-rise-and-fall-of-umd-movies" target="_blank" rel="noopener" class="mycode_url">https://obsoletesony.substack.com/p/the-...umd-movies</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Sony BMG Rootkit (2005)</span><br />
<br />
Electronic Frontier Foundation, "Sony BMG Litigation Info" — primary source for affected CD counts (22M+ total, 20M+ MediaMax, ~2M XCP), timeline, and settlement terms.<br />
<a href="https://www.eff.org/cases/sony-bmg-litigation-info" target="_blank" rel="noopener" class="mycode_url">https://www.eff.org/cases/sony-bmg-litigation-info</a><br />
<br />
EFF, "Open Letter to Sony BMG," November 14, 2005.<br />
<a href="https://www.eff.org/pages/open-letter-sony-bmg" target="_blank" rel="noopener" class="mycode_url">https://www.eff.org/pages/open-letter-sony-bmg</a><br />
<br />
EFF, "EFF Files Class Action Lawsuit Against Sony BMG," November 21, 2005.<br />
<a href="https://www.eff.org/press/archives/2005/11/21" target="_blank" rel="noopener" class="mycode_url">https://www.eff.org/press/archives/2005/11/21</a><br />
<br />
EFF, "Sony-BMG rootkit DRM in a Nutshell."<br />
<a href="https://www.eff.org/deeplinks/2005/11/sony-bmg-rootkit-drm-nutshell" target="_blank" rel="noopener" class="mycode_url">https://www.eff.org/deeplinks/2005/11/so...m-nutshell</a><br />
<br />
Thomas Hesse quote ("most people, I think, do not even know what a rootkit is, so why should they care about it?") from NPR interview, cited in EFF's Summary of Claims Against Sony-BMG.<br />
<a href="https://www.eff.org/deeplinks/2005/12/summary-claims-against-sony-bmg" target="_blank" rel="noopener" class="mycode_url">https://www.eff.org/deeplinks/2005/12/su...t-sony-bmg</a><br />
<br />
California and Texas AG settlements (&#36;1.5M combined) from state attorney general press releases (Greg Abbott, TX; Bill Lockyer, CA).<br />
<br />
<span style="font-weight: bold;" class="mycode_b">PlayStation 3</span><br />
<br />
PS2 lifetime sales (~155–160M units) per Sony's own reporting, Statista, and Wikipedia's List of Best-Selling Game Consoles.<br />
<a href="https://en.wikipedia.org/wiki/List_of_best-selling_game_consoles" target="_blank" rel="noopener" class="mycode_url">https://en.wikipedia.org/wiki/List_of_be...e_consoles</a><br />
<br />
PS3 launch prices (&#36;499/&#36;599, November 2006), European delay (March 2007), and per-unit loss (~&#36;306.85 on 20GB model) from iSuppli teardown estimates.<br />
<br />
PS3 total hardware losses (~&#36;3.3B) widely reported via Forbes and Wired, citing Sony financial disclosures.<br />
<br />
Ken Kutaragi quotes — "work more hours to buy one" is the verified phrasing; "get a second job" is the widely used paraphrase. "Just an Xbox 1.5" is directly attributed. Kutaragi relieved of duties December 2006, retirement announced April 2007, replaced by Kazuo Hirai.<br />
<br />
PS3 lifetime sales (~87M units) per Sony's reporting.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">PlayStation 4</span><br />
<br />
E3 2013 presentation (June 10–11, 2013). Jack Tretton's used-game and no-online-requirement statements. Sony's "Official PlayStation Used Game Instructional Video" released alongside the conference.<br />
<br />
PS4 price at launch: &#36;399 (&#36;100 below Xbox One at &#36;499).<br />
<br />
PS4 lifetime sales (~117M units) per Sony's reporting. Xbox One estimated at ~58M units.<br />
<br />
Vintage is the New Old, "Which Sold More PS4 or Xbox One?" — comparative sales analysis.<br />
<a href="https://www.vintageisthenewold.com/faq/which-sold-more-ps4-or-xbox-one" target="_blank" rel="noopener" class="mycode_url">https://www.vintageisthenewold.com/faq/w...r-xbox-one</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">PS5 Anti-Consumer Pattern</span><br />
<br />
Sony ended third-party digital download codes effective April 1, 2019. Confirmed to The Verge by Sony.<br />
<br />
Sony PS5 price hike (&#36;50 across line) announced August 20, 2025.<br />
<br />
Forbes, "Sony Hikes PlayStation Console Prices By &#36;50 Amid Trump Tariffs."<br />
<a href="https://www.forbes.com/sites/conormurray/2025/08/20/sony-hikes-playstation-console-prices-by-50-amid-trump-tariffs/" target="_blank" rel="noopener" class="mycode_url">https://www.forbes.com/sites/conormurray...p-tariffs/</a><br />
<br />
GameSpot, "PS5 Price Hikes Announced For The US."<br />
<a href="https://www.gamespot.com/articles/ps5-price-hikes-announced-for-the-us-every-system-going-up-by-50/1100-6534127/" target="_blank" rel="noopener" class="mycode_url">https://www.gamespot.com/articles/ps5-pr...0-6534127/</a><br />
<br />
Physical disc production ending January 2028 — announced July 1, 2026.<br />
<br />
PlayStation Blog (Sid Shuman), official announcement.<br />
<a href="https://blog.playstation.com/2026/07/01/physical-disc-production-ending-in-january-2028-for-new-games-releasing-on-playstation-consoles/" target="_blank" rel="noopener" class="mycode_url">https://blog.playstation.com/2026/07/01/...-consoles/</a><br />
<br />
TechCrunch, "Sony to end physical PlayStation game disc production in 2028."<br />
<a href="https://techcrunch.com/2026/07/01/sony-to-end-physical-playstation-game-discs-in-2028/" target="_blank" rel="noopener" class="mycode_url">https://techcrunch.com/2026/07/01/sony-t...s-in-2028/</a><br />
<br />
CNBC, "PlayStation will end physical disc production for new games in 2028."<br />
<a href="https://www.cnbc.com/2026/07/01/sony-playstation-physical-disc-production-2028.html" target="_blank" rel="noopener" class="mycode_url">https://www.cnbc.com/2026/07/01/sony-pla...-2028.html</a><br />
<br />
Game Informer, "PlayStation Will Cease Production Of Physical Discs For New Games."<br />
<a href="https://gameinformer.com/2026/07/01/playstation-will-cease-production-of-physical-discs-for-new-games-in-january-2028" target="_blank" rel="noopener" class="mycode_url">https://gameinformer.com/2026/07/01/play...nuary-2028</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Current Litigation (2025–2026)</span><br />
<br />
United Kingdom — "PlayStation You Owe Us"<br />
<br />
Alex Neill Class Representative Limited v. Sony, Competition Appeal Tribunal. Filed August 2022, Collective Proceedings Order granted November 21, 2023. Class: ~12.2M UK users. Estimated damages: ~£1.97B (~£182 per person including interest). Ten-week trial ran March 10 – May 8, 2026. Judgment pending.<br />
<br />
PlayStation You Owe Us — official claim website.<br />
<a href="https://playstationyouoweus.co.uk/" target="_blank" rel="noopener" class="mycode_url">https://playstationyouoweus.co.uk/</a><br />
<br />
LegalClarity, "Sony Class Action Lawsuit UK: The £2 Billion Claim."<br />
<a href="https://legalclarity.org/sony-class-action-lawsuit-uk-the-2-billion-claim/" target="_blank" rel="noopener" class="mycode_url">https://legalclarity.org/sony-class-acti...ion-claim/</a><br />
<br />
GosuGamers, "Sony faces US&#36;2.7 billion UK lawsuit over PlayStation Store pricing."<br />
<a href="https://www.gosugamers.net/entertainment/news/78126-sony-faces-us-2-7-billion-uk-lawsuit-over-playstation-store-pricing" target="_blank" rel="noopener" class="mycode_url">https://www.gosugamers.net/entertainment...re-pricing</a><br />
<br />
Netherlands — "Fair PlayStation"<br />
<br />
Stichting Massaschade &amp; Consument v. Sony, District Court of Midden-Nederland. Filed February 2025 under WAMCA opt-out framework. ~1.7M Dutch consumers, seeking €400M+. Opening arguments heard June 29, 2026. Chair Lucia Melcherts quoted on disc phase-out and pricing control. Stop Killing Games backed the case August 10, 2026.<br />
<br />
TechTimes, "PlayStation Store Antitrust Case Reaches Dutch Court: 1.7 Million Gamers Seek Refunds."<br />
<a href="https://www.techtimes.com/articles/319263/20260629/playstation-store-antitrust-case-reaches-dutch-court-17-million-gamers-seek-refunds.htm" target="_blank" rel="noopener" class="mycode_url">https://www.techtimes.com/articles/31926...efunds.htm</a><br />
<br />
Portugal — Ius Omnibus<br />
<br />
Ius Omnibus v. Sony, Competition, Regulation and Supervision Court (TCRS). Filed August 3, 2023. Seeking €235M+ for Portuguese consumers (PS4/PS5 games and PS Plus purchases from November 29, 2013). Ongoing.<br />
<br />
United States — Caccuri v. Sony (Antitrust)<br />
<br />
Caccuri v. Sony Interactive Entertainment LLC, N.D. Cal. Filed May 2021. &#36;7.85M proposed settlement covering ~4.4M US buyers (April 2019–December 2023). Rejected twice by Judge Araceli Martínez-Olguín (July 2025, January 2026). Preliminary approval on third attempt April 8, 2026. Final fairness hearing October 15, 2026. Sony denies wrongdoing.<br />
<br />
TNW Gaming, "Sony's &#36;7.85M PlayStation Store antitrust settlement has been preliminarily approved."<br />
<a href="https://thenextweb.com/news/sony-playstation-store-7-85-million-antitrust-settlement-digital-games" target="_blank" rel="noopener" class="mycode_url">https://thenextweb.com/news/sony-playsta...ital-games</a><br />
<br />
ClassAction.org, "&#36;7.85M Sony Antitrust Settlement Over Alleged Digital PlayStation Games Monopoly Approved by Court."<br />
<a href="https://www.classaction.org/news/7.85m-sony-antitrust-settlement-over-alleged-digital-playstation-games-monopoly-approved-by-court" target="_blank" rel="noopener" class="mycode_url">https://www.classaction.org/news/7.85m-s...d-by-court</a><br />
<br />
United States — Walker v. Sony (Tariff Windfall)<br />
<br />
Walker et al v. Sony Interactive Entertainment LLC, N.D. Cal. Filed May 6, 2026. Plaintiffs Amorey Walker and Bryce Foster-Quarles. Alleges "double recovery windfall" from tariff price hikes retained after Supreme Court struck down IEEPA tariffs (February 2026). Initial case management conference August 3, 2026. Assigned to Magistrate Judge Sallie Kim.<br />
<br />
Kotaku, "Players Sue Sony Over PS5 Tariff 'Windfall'."<br />
<a href="https://kotaku.com/sony-is-being-sued-for-allegedly-retaining-substantial-windfall-generated-by-illegal-tariffs-2000697029" target="_blank" rel="noopener" class="mycode_url">https://kotaku.com/sony-is-being-sued-fo...2000697029</a><br />
<br />
Complex, "PS5 Players Hit Sony With Proposed Class Action Over Tariff 'Windfall'."<br />
<a href="https://www.complex.com/pop-culture/a/bernadette-giacomazzo/ps5-class-action-lawsuit-sony" target="_blank" rel="noopener" class="mycode_url">https://www.complex.com/pop-culture/a/be...wsuit-sony</a><br />
<br />
Outlook Respawn, "Sony Tariff Lawsuit Expands Pressure Over PS5 Price Hikes."<br />
<a href="https://respawn.outlookindia.com/gaming/gaming-news/sony-tariff-lawsuit-expands-pressure-over-ps5-price-hikes" target="_blank" rel="noopener" class="mycode_url">https://respawn.outlookindia.com/gaming/...rice-hikes</a><br />
<br />
Multi-Jurisdiction Overview<br />
<br />
Shattered.io, "PlayStation Store Lawsuit 2026: Sony Faces Three-Country Legal Battle."<br />
<a href="https://shattered.io/playstation-store-lawsuit-2026/" target="_blank" rel="noopener" class="mycode_url">https://shattered.io/playstation-store-lawsuit-2026/</a><br />
<br />
The Tech Marketer, "PlayStation Store Lawsuit 2026: Sony Faces Three-Country Legal Battle Over Monopoly Pricing and Misleading Purchase Terms."<br />
<a href="https://thetechmarketer.com/playstation-store-lawsuit-2026/" target="_blank" rel="noopener" class="mycode_url">https://thetechmarketer.com/playstation-...suit-2026/</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Steve Heckler Quote (2000)</span><br />
<br />
Sony Pictures Entertainment US SVP Steve Heckler at the Americas Conference on Information Systems, August 2000. Reported by The Register, August 23, 2000. Sony backtracked August 29, 2000, claiming Heckler was "quoted out of context."<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Additional Format History</span><br />
<br />
Fast Company catalogued Sony's proprietary format failures from Betamax through Memory Stick Micro.<br />
<br />
Statista, "Global Apple iPod sales 2006–2014."<br />
<a href="https://www.statista.com/statistics/263405/global-apple-ipod-sales-since-1st-quarter-2006" target="_blank" rel="noopener" class="mycode_url">https://www.statista.com/statistics/2634...arter-2006</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Note on Sources</span><br />
<br />
Market share figures for Betamax/VHS are widely accepted estimates from industry histories, not a single audited dataset. Console lifetime sales come from Sony's own financial reporting. The PS3 loss figure (&#36;3.3B) is the most commonly cited estimate; some accounts place it higher. All ongoing litigation figures reflect claims by plaintiffs and claimant organizations — no court has ruled against Sony in the current storefront cases as of August 2026. Sony denies wrongdoing across all active proceedings.</span></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[The RunUO Incident]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=56</link>
			<pubDate>Tue, 25 Aug 2026 05:13:02 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=56</guid>
			<description><![CDATA[Here is a fun story about the time I got perma-banned in one shot for being honest ONE TIME. Let me take you back to 2006. I was doing Ultima Online emulation running a server hanging out on the runuo forums and also the orbsydia forums. I still miss that last one just saying and I hear Khaybel is back at it again today running a UO server and updating UOArchitect again. Anyhow Ryan banned me from RunUO on the spot and I had no prior issues at all had been on the forums contributing what I could for years. He did not like me calling out the growing toxicity in his forums and when I did he banned me instantly like a little baby. One of the only times I ever got tossed from a place not kidding I don't have a long history of bans on my record I have this one and a couple games I got kicked from. DFO being another one. Not because I did anything wrong there either. I opened up a portable version of photoshop with the game running one day. They saw sandbox and the auto ban kicked right in. They would hear no appeal no anything just banned automatically. That's how I get banned from places in one move from 12 years as a clean paying player to banned over an auto detected sandboxed app. They had a problem with sandboxes and cheats once and this is how they handled it. I do not support Neople or Nexon in any way shape or form today. They are the plague to me after that. So was UO emulation after Ryan banned me in a hissy fit. He lost his community around that time the guys with the skills left and he had nothing but a messy forum he could not manage and he walked and when he did he deleted our whole past all our work all our conversations he nuked it out of spite like the little bitch he is. Yes I called him a bitch what else do I say about the guy? He acted like one LOL. I hope he sees this not kidding. Would make my day to hear him cry about it. But I digress the unjust bans have hit me a couple times over the decades. From ego maniacs to automation. None of it is good man. This is what sets us back as people. When we have to participate in places that are hostile to reality this is what we deal with. You can't tell me it is healthy for a community to be managed by a guy with a giant ego who gets hurt by the truth and you can't defend auto bans they make no logical sense. Letting a machine handle the job is LAZY.<br />
<br />
<div style="text-align: center;" class="mycode_align"><a href="https://photonamus.com/images/photonamus/runuo-permaban.jpg" target="_blank" rel="noopener" class="mycode_url"><img src="https://photonamus.com/images/photonamus/runuo-permaban.jpg" loading="lazy"  width="1024" height="768" alt="[Image: runuo-permaban.jpg]" class="mycode_img" /></a></div>
<br />
<br />
For the record fellas we do NOT ban people for being honest. Hell we don't even ban you for holding a pretty wildly unpopular stance on things. You are free to think and speak how you do unless it causes some kind of major problem is outright illegal or just disruptive completely to our site/forums you can say it here and no one is going to come at you with a ban hammer today. I don't do this to people it is wrong and always will be.<br />
<br />
You are also free to examine that wild custom winXP I had going on and the insane text on my browser and any other crazy old school oddities you can spot. My world has been wild for a while LOL. I have been building machines and running servers since before that time. This is only my most recent build you are on now <img src="https://forum.photonamus.com/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" />]]></description>
			<content:encoded><![CDATA[Here is a fun story about the time I got perma-banned in one shot for being honest ONE TIME. Let me take you back to 2006. I was doing Ultima Online emulation running a server hanging out on the runuo forums and also the orbsydia forums. I still miss that last one just saying and I hear Khaybel is back at it again today running a UO server and updating UOArchitect again. Anyhow Ryan banned me from RunUO on the spot and I had no prior issues at all had been on the forums contributing what I could for years. He did not like me calling out the growing toxicity in his forums and when I did he banned me instantly like a little baby. One of the only times I ever got tossed from a place not kidding I don't have a long history of bans on my record I have this one and a couple games I got kicked from. DFO being another one. Not because I did anything wrong there either. I opened up a portable version of photoshop with the game running one day. They saw sandbox and the auto ban kicked right in. They would hear no appeal no anything just banned automatically. That's how I get banned from places in one move from 12 years as a clean paying player to banned over an auto detected sandboxed app. They had a problem with sandboxes and cheats once and this is how they handled it. I do not support Neople or Nexon in any way shape or form today. They are the plague to me after that. So was UO emulation after Ryan banned me in a hissy fit. He lost his community around that time the guys with the skills left and he had nothing but a messy forum he could not manage and he walked and when he did he deleted our whole past all our work all our conversations he nuked it out of spite like the little bitch he is. Yes I called him a bitch what else do I say about the guy? He acted like one LOL. I hope he sees this not kidding. Would make my day to hear him cry about it. But I digress the unjust bans have hit me a couple times over the decades. From ego maniacs to automation. None of it is good man. This is what sets us back as people. When we have to participate in places that are hostile to reality this is what we deal with. You can't tell me it is healthy for a community to be managed by a guy with a giant ego who gets hurt by the truth and you can't defend auto bans they make no logical sense. Letting a machine handle the job is LAZY.<br />
<br />
<div style="text-align: center;" class="mycode_align"><a href="https://photonamus.com/images/photonamus/runuo-permaban.jpg" target="_blank" rel="noopener" class="mycode_url"><img src="https://photonamus.com/images/photonamus/runuo-permaban.jpg" loading="lazy"  width="1024" height="768" alt="[Image: runuo-permaban.jpg]" class="mycode_img" /></a></div>
<br />
<br />
For the record fellas we do NOT ban people for being honest. Hell we don't even ban you for holding a pretty wildly unpopular stance on things. You are free to think and speak how you do unless it causes some kind of major problem is outright illegal or just disruptive completely to our site/forums you can say it here and no one is going to come at you with a ban hammer today. I don't do this to people it is wrong and always will be.<br />
<br />
You are also free to examine that wild custom winXP I had going on and the insane text on my browser and any other crazy old school oddities you can spot. My world has been wild for a while LOL. I have been building machines and running servers since before that time. This is only my most recent build you are on now <img src="https://forum.photonamus.com/images/smilies/smile.png" alt="Smile" title="Smile" class="smilie smilie_1" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Retro Game Audio Bible]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=55</link>
			<pubDate>Sun, 23 Aug 2026 03:47:21 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=55</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Retro Game Audio Bible — Context Document</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Complete reference for chip-era game music — hardware, synthesis, composition techniques, and the constraints that defined each generation's sound</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
This context document gives an AI assistant deep expertise in <span style="font-weight: bold;" class="mycode_b">retro game audio</span> from the chip and cartridge era — everything from the earliest PSG sound generators through the last generation before CD-quality streaming made constraints irrelevant. It covers the hardware, the synthesis paradigms, the composition techniques, and the philosophy that made this music iconic.<br />
<br />
The scope is intentional: it stops at the point where audio became unlimited. Once a system is just streaming a pre-mixed studio recording off a disc, it's out of scope. This document lives in the world of <span style="font-weight: bold;" class="mycode_b">chips, cartridges, small samples, and real-time synthesis</span>.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What It Covers</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Sequencing vs streaming</span> — the foundational concept that explains why chip-era music works the way it does, and why every clever trick is a workaround for channel count, waveform type, memory, or CPU time<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Three synthesis paradigms</span> — PSG (fixed waveforms), FM synthesis (operator modulation), and sample-based (PCM/wavetable), with clear explanations of how each sounds and why<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">System-by-system reference</span> — detailed breakdowns for Atari 2600 (TIA), NES/Famicom (2A03), Game Boy (DMG), Sega Master System (SN76489), Commodore 64 (SID), arcade FM era (YM2151), Sega Genesis (YM2612), SNES (S-SMP/SPC700), Amiga (Paula), and PC sound cards (AdLib/OPL)<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Universal composer techniques</span> — arpeggiation, channel economy, rapid parameter modulation, duty cycle manipulation, instrument multiplexing, sample looping, percussion strategy, and composing for loops<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Loop length reference data</span> — typical single-loop durations by music type with specific reference points from Secret of Mana, Final Fantasy VI, Chrono Trigger, and ActRaiser<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">The constraint-to-aesthetic principle</span> — why every limitation produced a distinctive sonic signature that people now deliberately recreate<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Timeline summary</span> — 1977 through 1992, system by system, chip by chip<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Application notes</span> — practical guidance for using this knowledge in AI music generation, tracker composition, or era-specific emulation<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">How to Use It</span></span><br />
<br />
Paste the contents into a new conversation as context, or attach the file directly. The AI will then understand the technical underpinnings of each era's sound well enough to help with composition, generation prompting, sound design discussions, or any project where you need to nail a specific retro audio aesthetic.<br />
<br />
Pairs well with music generation tools like <span style="font-weight: bold;" class="mycode_b">ACE-Step</span> when targeting specific era sounds — the prompting guidance in this document translates directly into caption dimensions for generation workflows.<br />
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Document Contents</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code># Retro Game Audio Bible

**Scope:** Game music from the chip/cartridge era — from the earliest PSG sound through the last generation before CD-quality streaming audio became the norm. Covers hardware constraints, how composers worked within them, and the techniques that defined each era's sound.

**Explicit boundary:** This document stops at the point where audio became "unlimited" — i.e., Red Book CD audio, full MP3-grade streaming tracks, PSX/Saturn CDDA and beyond. We stay in the world of chips, cartridges, small samples, and real-time synthesis. The moment a system is just streaming a pre-mixed studio recording off a disc, it's out of scope.

---

## 1. The Core Concept: Sequencing vs. Streaming

The single most important distinction in retro game audio:

**Streaming (out of scope):** Store a finished audio recording, play it back. Like a CD or MP3. Storage cost scales with length and quality. No real-time flexibility.

**Sequencing (the entire chip era):** Store a set of tiny instrument definitions (waveforms or short samples) plus a compact list of instructions — "play this note on this channel at this time, with this volume envelope." The sound chip generates the audio in real time. Storage cost is tiny; a full song might be a few KB. This is functionally like MIDI + a sound font.

Almost everything in this document is about sequencing. The composer isn't recording audio — they're writing a program that tells a synthesizer what to do, note by note, frame by frame. The constraints are about:
- How many things can play at once (channels/voices/polyphony)
- What each channel can sound like (waveform types, synthesis method)
- How much memory the instrument data + sequence data can occupy
- How much CPU time is available to update the sound chip

Understanding this is the key that unlocks everything else. Every clever trick in retro game music is a workaround for one of those four limits.

---

## 2. The Three Synthesis Paradigms

### 2.1 PSG (Programmable Sound Generator)
The earliest and simplest. Generates a small set of fixed waveforms — square/pulse, triangle, noise — directly in hardware. You control pitch, volume, and (sometimes) duty cycle. That's mostly it. Cheap, limited, and responsible for the classic "8-bit bleep" sound.

Examples: NES 2A03, Game Boy DMG, Sega Master System SN76489, Atari TIA, General Instruments AY-3-8910 (MSX, ZX Spectrum).

### 2.2 FM Synthesis (Frequency Modulation)
A leap forward. Instead of fixed waveforms, FM uses "operators" (sine wave oscillators) that modulate each other's frequency. A 4-operator channel can produce complex, evolving, metallic, bell-like, brass-like, or organ-like timbres impossible on a PSG. Harder to program — the relationship between operator settings and resulting sound is unintuitive — but vastly more expressive.

FM arrived in arcades in 1984 (Marble Madness, Yamaha YM2151) and became the factory standard for game composers from the mid-1980s to mid-1990s. The Yamaha DX7 synthesizer popularized the same technology.

Examples: Sega Genesis YM2612, arcade YM2151, PC AdLib/Sound Blaster OPL2/OPL3, Sega Master System FM add-on YM2413.

### 2.3 Sample-Based (PCM / Wavetable)
Store actual recorded audio snippets (samples) and play them back at varying pitches. This is how you get "real" instruments — a recorded piano note, a drum hit, an orchestral stab. The constraint is memory: samples eat storage fast, so early sample-based systems used tiny, short, low-bit-depth samples and looped them.

Examples: SNES S-SMP (fully sample-based), Amiga Paula, arcade PCM chips, and the sample channels bolted onto otherwise-PSG/FM systems (NES DMC, Genesis DAC channel).

**The hybrid reality:** Most 16-bit systems mixed paradigms. The Genesis is FM + PSG + one sample channel. The NES is PSG + one sample channel. This layering — melodic FM/PSG voices plus sampled percussion — defined the 16-bit sound.

---

## 3. System-by-System Reference

### 3.1 Atari 2600 (TIA) — 1977
- **Chip:** TIA (Television Interface Adaptor)
- **Channels:** 2
- **Type:** PSG, extremely primitive
- **The brutal constraint:** The TIA couldn't play in tune. Its pitch was derived from dividing the video clock, so available pitches didn't map to a proper musical scale. Composers had to choose notes that were "close enough" and write melodies that hid the tuning problems. This is the hardest compositional constraint of any system here.
- **Takeaway:** When the hardware can't even produce correct pitches, composition becomes about working around fundamental brokenness.

### 3.2 NES / Famicom (Ricoh 2A03/2A07) — 1983/1985
- **Channels:** 5 total
  - 2× pulse/square wave (duty cycles: 12.5%, 25%, 50%, 75%)
  - 1× triangle wave (no volume control — fixed volume)
  - 1× noise (pseudo-random, for percussion/effects)
  - 1× DMC (Delta Modulation Channel) — plays short DPCM samples
- **Type:** PSG + one sample channel
- **Polyphony:** Each channel is monophonic — one note at a time, no chords per channel.
- **Standard channel roles:**
  - Pulse 1 &amp; 2: melody and harmony (or melody + countermelody)
  - Triangle: bassline (and sometimes toms/kick)
  - Noise: percussion (hi-hats, snares, crashes)
  - DMC: richer sampled percussion or occasionally bass (Sunsoft games famously used it for bass)
- **Key techniques:**
  - **Arpeggios:** Rapidly cycling a single channel through the notes of a chord (e.g., root-third-fifth every few frames) to *imply* a chord with one monophonic voice. The signature "chirp" of NES chords.
  - **Duty cycle changes mid-note:** Switching pulse width during a note for timbral movement.
  - **Vibrato via pitch sweeps:** Rapid pitch modulation to add expression, since there's no dedicated vibrato.
  - **Rapid envelope updates:** Faking attack/decay by changing volume every frame.
  - **Triangle as lead:** A few games (Kirby's Adventure backing, SMB3 Boom Boom theme, Pipe Dream) broke convention and used triangle for melody.
  - **Channel interruption:** Borrowing a music channel for a sound effect, then returning it.
- **Expansion audio:** Famicom cartridges could add sound chips (Konami VRC6, VRC7, Nintendo FDS, Namco 163, Sunsoft 5B) giving extra channels — but only on Japanese Famicom, since the NES cartridge connector didn't pass the audio pin through. This is why some Japanese versions sound richer.
- **Notable composers:** Koji Kondo (Mario, Zelda), Hip Tanaka (Metroid), Tim Follin (technical showpieces).

### 3.3 Game Boy (DMG-CPU) — 1989
- **Channels:** 4
  - 2× pulse/square (duty cycles 12.5%, 25%, 50%, 75%; channel 1 has a hardware frequency sweep)
  - 1× wave channel — plays a user-definable 32-step, 4-bit waveform stored in Wave RAM (&#36;FF30-&#36;FF3F, 16 bytes)
  - 1× noise (LFSR-based; not true white noise, has audible periodic character)
- **Type:** PSG with a programmable-wavetable twist
- **Distinctive features:** Strong stereo panning (composers used hard-panning for width), and the wave channel's custom waveforms allowed more timbral variety than the NES. The wave channel is often used for bass or a second lead.
- **Key techniques:** Same arpeggio-for-chords approach as NES. Wave RAM can be rewritten mid-song to change the wave channel's timbre. Composers switch instrument parameters mid-channel to make one channel sound like two alternating instruments.
- **Notable composers:** Hirokazu Tanaka, Hip Tanaka, the LSDj/chiptune scene that grew around the hardware later.

### 3.4 Sega Master System / Mark III (SN76489 PSG) — 1985/1986
- **Channels:** 4
  - 3× square/tone
  - 1× noise
- **Type:** PSG (Texas Instruments SN76489, integrated into the VDP)
- **No sample channel** natively — PCM playback only via CPU trickery (rapid volume manipulation), which was expensive.
- **The FM add-on:** Japanese Mark III/Master System units (and the FM Sound Unit) included a **Yamaha YM2413 (OPL-derived FM chip)**. It offered 9 FM channels (or 6 FM + 5 percussion). Most Western games never used it, so Japanese versions of the same game often sound dramatically better.
- **Same chip family** appears in ColecoVision, BBC Micro, IBM PCjr, Tandy 1000.
- **Character:** Feels about half a generation behind the SID or even the NES — no secondary waveforms like the NES triangle, just pulses and noise. Composers leaned hard on arpeggios and rhythmic drive.

### 3.5 Commodore 64 (MOS 6581/8580 SID) — 1982
- **Channels:** 3 voices
- **Type:** Hybrid analog/digital synthesizer-on-a-chip — the standout of the 8-bit era
- **Per-voice features:**
  - 4 waveforms: triangle, sawtooth, pulse (variable width), noise
  - Full **ADSR envelope** per voice (attack, decay, sustain, release)
  - **Ring modulation** and **oscillator sync** between voices
- **Chip-wide:** A multi-mode **analog filter** (low-pass, band-pass, high-pass, notch) — any combination of voices could be routed through it for sweeps, wah, vocal-like timbres.
- **Why it mattered:** Designed by Bob Yannes as a real synth, not a beeper. It still sounds "modern" decades later because it's genuinely an analog subtractive synth. The two revisions (6581 rougher/warmer, 8580 cleaner) sound different, and each individual 6581 chip's filter sounds slightly different — like analog gear.
- **Key techniques:**
  - **Fast arpeggios as chords:** With only 3 voices, composers played chords by cycling one voice through chord tones at high speed — the signature C64 sound.
  - **Filter sweeps:** Timed cutoff automation for movement and drama.
  - **Multi-instrument voices:** Switching a voice's waveform/envelope rapidly so one voice plays bass AND lead in alternation.
  - **The "filter glitch" sample trick:** Rob Hubbard and others exploited SID quirks to play sampled drum hits — CPU-intensive, rarely used in gameplay.
  - **ADSR quirk exploitation:** Working with (not against) the buggy envelope generator.
- **Notable composers:** Rob Hubbard (Monty on the Run, Commando, International Karate), Martin Galway, Jeroen Tel, Chris Hülsbeck, Ben Daglish. These are the legends who established that constraints focus creativity rather than limiting it. Hubbard wrote long-form, prog-rock-inspired dynamic pieces that evolved over time.
- **Legacy:** The High Voltage SID Collection archives tens of thousands of tunes. The chip is still bought, cloned, and built into modern synths.

### 3.6 Arcade FM Era (Yamaha YM2151 and family) — 1984 onward
- **The shift:** Arcades introduced FM synthesis to games in 1984 (Marble Madness, YM2151). Arcades had bigger boards, more chips, and no cartridge memory limit the way consoles did, so they pushed ahead of home systems.
- **Common approach:** Multiple sound chips per board. Konami's Gyruss (1983) used five synthesis chips plus a DAC to render Bach. FM chips (YM2151, YM2203) provided melodic voices; dedicated PCM chips (SegaPCM, OKI ADPCM) provided sampled drums and voices.
- **Why arcades sounded better:** More silicon, more channels, more PCM, and often the composer had a known fixed hardware target to optimize for.
- **The YM2203 (OPN):** 3 FM + 3 SSG (PSG) channels. Progenitor of the whole OPN family that led to the Genesis chip.

### 3.7 Sega Genesis / Mega Drive (YM2612 + SN76489) — 1988/1989
- **Chips:** Yamaha YM2612 (FM) + Texas Instruments SN76489 (PSG, in the VDP)
- **Channels:** 10 total for tone
  - 6× FM (4-operator each), the 6th switchable to an 8-bit PCM sample channel (can't do both FM and PCM at once)
  - 3× PSG square + 1× PSG noise
- **Type:** FM + PSG + one sample channel — stereo output
- **The defining challenge:** FM synthesis is hard to program well. Composers who mastered it (Streets of Rage, Thunder Force, Sonic) got rich, aggressive, "warm" tones. Those who didn't got the thin, honky sound Genesis is sometimes criticized for. The chip rewarded deep understanding.
- **PCM handling:** The DAC/PCM channel had no hardware timing buffer, so the Z80 coprocessor had to babysit sample playback in software to avoid locking up the main 68000 CPU. This is why drum-heavy Genesis music often sacrificed the 6th FM channel.
- **The "ladder effect":** The original YM2612 had a distortion quirk (bit truncation on the negative edge of waveforms) that became part of its signature grit. Later revisions (YM3438/Model 2) cleaned it up, changing the sound.
- **No 16-bit sampling** — the sample channel was 8-bit, used mostly for percussion and voice.
- **Notable composers:** Yuzo Koshiro (Streets of Rage — famous for a custom assembly-language music driver that squeezed dance/house production out of the chip), Masato Nakamura (Sonic).

### 3.8 Super Nintendo / Super Famicom (S-SMP: SPC700 + S-DSP) — 1990/1991
- **Chip:** Sony S-SMP — SPC700 CPU + 8-channel DSP, fully self-contained with its own 64KB RAM
- **Channels:** 8, all sample-based (ADPCM)
- **Type:** Fully sample-based (the opposite philosophy from the Genesis's FM approach)
- **Features:**
  - BRR (Bit Rate Reduction) ADPCM compression — packs 16 samples into 9 bytes
  - Hardware ADSR envelopes per channel
  - Built-in **echo/reverb** (a hardware DSP effect — hugely responsible for the lush SNES sound)
  - Pitch modulation, stereo panning, noise
- **The 64KB constraint:** Everything — sound driver code, all instrument samples, and sequence data — shared one 64KB block. About 3.6 seconds of raw BRR-compressed audio could fit in the whole space. So composers used tiny, cleverly-looped instrument samples and spent the rest of the budget on sequence data. Rich samples meant less room for musical complexity, and vice versa. This is the central trade-off of SNES composition.
- **Channel allocation strategy:** Some developers reserved channels for sound effects; Square (Secret of Mana) used all 8 for music and interrupted channels for SFX, getting richer music at the cost of occasional audible pauses.
- **Why it sounds "warm":** Real sampled instruments + hardware reverb + the gentle low-pass character of BRR/Gaussian interpolation = the signature dreamy SNES tone.
- **Dynamic RAM tricks:** For long set-pieces (FF6's "Dancing Mad," 17:35, and "Balance Is Restored" ending, 21:29), the main CPU streamed new sample/sequence data into the S-SMP's RAM mid-piece, section by section, since these were scripted non-looping events. This is also why some games can't be captured as static SPC dumps.
- **Notable composers:** Koji Kondo (Super Mario World, Zelda: A Link to the Past), Nobuo Uematsu (Final Fantasy), Yasunori Mitsuda (Chrono Trigger), Hiroki Kikuta (Secret of Mana — pushed the hardware further than almost anyone, custom-synced title music to visuals), David Wise (Donkey Kong Country — used long high-quality samples and atmospheric ambient techniques).

### 3.9 Commodore Amiga (Paula) — 1985
- **Chip:** Paula (part of the Amiga custom chipset)
- **Channels:** 4, all sample-based PCM
- **Type:** Fully sample-based, 8-bit, DMA-driven, up to ~28kHz
- **Significance:** First affordable home system with real PCM sample playback. Two channels feed left, two feed right (stereo). The Fairlight CMI synthesizer offered similar sampling for &#36;25,000 a few years earlier; Paula democratized it.
- **The tracker revolution:** In 1987 Karsten Obarski wrote **Ultimate Soundtracker**, creating the **MOD file format** and the tracker workflow — a grid where you enter notes, instrument numbers, and effects across 4 channels, 64 rows per pattern, sequencing patterns into songs. MOD files bundled the samples (up to 15, later 31 instruments) with the pattern data, staying tiny while sounding rich.
- **Constraints:**
  - 4 channels, 8-bit samples, limited Chip RAM (shared with graphics)
  - 31 instrument slots, tight sample-length budgets
- **Key techniques:**
  - **Software channel multiplexing:** OctaMED and others mixed multiple virtual channels into Paula's 4 hardware channels (e.g., Turrican 2 title music uses 7).
  - **Chip-mod / "fakebit":** Playing tiny single-cycle waveform samples to get C64/NES-style timbres out of a sample chip.
  - **Two-channel bit-depth trick:** Combining two channels at different volumes to approximate 14-bit output.
  - **Cross-channel modulation:** Chaining channels to modulate each other, producing FM-like results.
- **Legacy:** The tracker paradigm went straight into PC (FastTracker, Impulse Tracker) and lives on in Renoise and OpenMPT. The demoscene grew up around Amiga music compos.
- **Note:** The MOD format expanded on PC to XM and IT with 32-64 channels in the late '90s. Once "channel economy" disappeared, tracker music ballooned into huge complex arrangements — a lead might use 3 channels (1 main + 2 echo), chords 4-5. This is the tail end of the tracker era edging toward the unlimited zone.

### 3.10 PC Sound Cards (AdLib / Sound Blaster, Yamaha OPL) — 1987 onward
- **AdLib (1987):** Yamaha OPL2 (YM3812) — 9 channels of 2-operator FM. The first widely-adopted PC music standard beyond the internal beeper.
- **Sound Blaster (1989):** Added a DAC for digital sample playback alongside OPL FM. The combination — FM music + digital sound effects/voice — became the DOS gaming standard.
- **Sound Blaster 16 (1992):** OPL3 (YM262) — 18 channels, better FM.
- **General MIDI (1991):** Standardized 128 instruments so composers could write once and play across compatible devices (Roland Sound Canvas, etc.). The Secret of Monkey Island and other adventures leveraged this era.
- **Character:** OPL FM has a distinct "DOS game" sound — brighter and buzzier than the Genesis YM2612, since it's 2-operator vs 4-operator. LucasArts/Sierra adventure scores define the aesthetic.

---

## 4. The Universal Composer Techniques

These recur across nearly every constrained system. If you're emulating or evoking a retro sound, these are the moves:

### 4.1 Arpeggiation (Faking Chords)
The single most important technique. When each channel is monophonic and you only have 2-3 melodic channels, you can't play a full chord AND a melody AND a bass. Solution: cycle one channel rapidly through a chord's notes (root, third, fifth, root, third, fifth...) fast enough that the ear fuses them into a chord. The characteristic fast "bubbling" arpeggio IS the sound of the 8-bit era. NES, C64, Game Boy, SMS all rely on it heavily.

### 4.2 Channel Economy / Voice Allocation
With so few channels, every voice must earn its place. Typical 3-4 channel allocation:
- 1 channel: melody/lead
- 1 channel: bass
- 1 channel: harmony OR arpeggiated chords OR countermelody
- 1 channel: percussion (noise)

Composers constantly make trade-offs: drop the harmony during a drum fill, borrow the bass channel for a fill, etc. The arrangement is a resource-allocation puzzle as much as a musical one.

### 4.3 Rapid Parameter Modulation
Since hardware often lacks dedicated vibrato/tremolo/envelopes, composers fake them by changing parameters every frame (60Hz):
- **Vibrato:** rapid pitch wobble
- **Tremolo:** rapid volume wobble
- **Fake envelopes:** stepping volume down over frames to simulate decay
- **Duty cycle sweeps:** changing pulse width for timbral movement
- **PWM (pulse width modulation):** continuous duty sweeps for a "phasing" lead sound

### 4.4 Instrument Multiplexing on One Channel
Switching a channel's instrument settings mid-pattern so it alternates between roles — e.g., playing a bass note, then instantly reconfiguring to play a lead stab, then back. One channel doing two jobs by never doing them simultaneously.

### 4.5 Sample Looping and Reuse
On sample-based systems, memory is the enemy. Techniques:
- Loop a short sustain portion of a sample indefinitely (a 0.2s violin sustain loops to hold a long note)
- Reuse one sample at different pitches for multiple "instruments"
- Use very short/low-bit samples for percussion where fidelity matters less
- Find clean zero-crossing loop points to avoid clicks

### 4.6 Percussion Strategy
- **PSG systems:** Noise channel shaped with fast envelopes — short burst = hi-hat/snare, pitched noise = tom
- **Sample systems:** Dedicated short drum samples on a sample channel
- **NES/Genesis:** DMC/DAC channel for sampled drums, freeing tonal channels

### 4.7 Composing FOR Repetition (Loops)
Game music loops indefinitely, so it must be written to loop gracefully. Baroque and minimalist styles work well because they're built on repetition. Composers wrote loop points that flow seamlessly back to the start, and avoided dramatic one-time dynamic shifts that would feel wrong on repeat.

---

## 5. Loop Length Reference (Chip/Cartridge Era)

Because storage was sequence data (tiny), loop length was limited more by composition effort and memory for pattern data than by audio storage. Typical single-loop lengths:

| Music Type | Typical Loop | Notes |
|------------|-------------|-------|
| Title/menu | 4-30s | Short; sometimes non-looping jingles |
| Town/area (ambient) | 50-120s | The "place feeling" background loop |
| Overworld/field | 70-140s | More developed melodies |
| Dungeon | 45-90s | Atmospheric, repetition less noticed |
| Battle | 45-75s | Short, urgent |
| Boss | 55-90s | Slightly longer than normal battle |
| Character theme | 50-85s | Quick identity establishment |
| Victory/fanfare | 3-15s | Stingers |

**Reference points:**
- Secret of Mana (SNES): area BGM ~1:30-2:30, average ~2:15 (OST is single-loop length)
- Final Fantasy VI (SNES): estimated single loops ~55-110s
- Chrono Trigger (SNES): estimated single loops ~30-140s
- ActRaiser "Birth of the People": ~40s, heard for huge portions of the game — proves short loops work with the right compositional style (baroque)

**The big exceptions** (10+ minutes) only existed in scripted, non-looping contexts — final boss sequences and endings — where the game engine streamed new data to the sound chip in stages. Nobody wrote a 17-minute loop in 64KB.

---

## 6. The Constraint-to-Aesthetic Principle

The throughline of this entire era: **constraints didn't limit creativity, they focused it and created identity.**

- The NES arpeggio chirp exists because of monophonic channels — and became iconic.
- The C64's fast-arpeggio sound exists because of only 3 voices — and defined a genre.
- The SNES's warm dreaminess exists because of BRR compression + hardware reverb + tiny looped samples.
- The Genesis's aggressive grit exists because of FM synthesis + the ladder-effect distortion.
- The tracker workflow exists because of Paula's 4 channels and the need to bundle samples compactly.

Every "limitation" produced a distinctive sonic signature that people now deliberately recreate. When you remove the constraint (XM/IT trackers with 64 channels, CD audio), the distinctive identity often dissolves into generic capability. This is worth remembering for any project that wants a *specific* retro character — the constraint is the aesthetic.

---

## 7. Timeline Summary

| Year | System | Sound Hardware | Paradigm | Channels |
|------|--------|---------------|----------|----------|
| 1977 | Atari 2600 | TIA | PSG (untuned) | 2 |
| 1982 | Commodore 64 | MOS 6581 SID | Analog synth-on-chip | 3 |
| 1983 | NES/Famicom | Ricoh 2A03 | PSG + 1 sample | 5 |
| 1984 | Arcade (Marble Madness) | Yamaha YM2151 | FM | 8 |
| 1985 | Amiga | Paula | Sample (PCM) | 4 |
| 1985 | Sega Master System | SN76489 (+YM2413 FM) | PSG (+FM add-on) | 4 (+9) |
| 1987 | PC AdLib | Yamaha OPL2 | FM | 9 |
| 1989 | Game Boy | DMG-CPU | PSG + wavetable | 4 |
| 1988 | Sega Genesis | YM2612 + SN76489 | FM + PSG + 1 sample | 10 |
| 1990 | SNES/SFC | Sony S-SMP | Sample (ADPCM) + reverb | 8 |
| 1992 | PC Sound Blaster 16 | Yamaha OPL3 | FM + DAC | 18 |

*(After this: PSX/Saturn CD-DA streaming, full studio recordings off disc — out of scope.)*

---

## 8. Key Sources &amp; Further Reading

- Video Game Music Preservation Foundation Wiki (vgmpf.com) — chip specs, game rips, SPC/SID/etc.
- NESdev Wiki &amp; forums — deep NES/2A03 technical detail
- SMS Power (smspower.org) — Master System / SN76489 / YM2413
- MegaDrive Wiki / consolemods.org — YM2612 detail
- gbdev.gg8.se — Game Boy sound hardware
- Ludomusicology.org — academic analysis of PSG compositional strategies
- High Voltage SID Collection — C64 music archive
- superfamicom.org / wiki.superfamicom.org — SNES/SPC700 detail
- Copetti.org "Architecture of Consoles" series — excellent per-system technical writeups

---

## 9. Application Notes (for generation/composition projects)

If using this to inform AI music generation, tracker composition, or emulation of a specific era:

1. **Pick the paradigm first.** PSG chiptune, FM (Genesis/arcade/DOS), or sample-based (SNES/Amiga) — they sound fundamentally different.
2. **Respect channel counts** if authenticity matters. 3-4 voices forces the arpeggio-and-economy approach that makes it sound right.
3. **Match the era's percussion approach** — noise-channel drums vs sampled drums is a giveaway.
4. **Loop-aware composition** — write for seamless repetition, avoid one-time dramatic shifts.
5. **For "warm SNES" vibe:** sampled real instruments + reverb + gentle high-frequency rolloff.
6. **For "gritty Genesis" vibe:** FM timbres, aggressive, slightly distorted, punchy.
7. **For "chiptune" vibe:** pulse/square leads, triangle/wave bass, noise percussion, fast arpeggios.
8. **The constraint IS the aesthetic** — if you want a specific retro identity, impose the matching limitation deliberately rather than using unlimited modern capability.</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">Download the .zip below to use this document with your AI assistant.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=14" target="_blank" title="">retro-game-audio-bible-context.zip</a> (Size: 10.92 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Retro Game Audio Bible — Context Document</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Complete reference for chip-era game music — hardware, synthesis, composition techniques, and the constraints that defined each generation's sound</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
This context document gives an AI assistant deep expertise in <span style="font-weight: bold;" class="mycode_b">retro game audio</span> from the chip and cartridge era — everything from the earliest PSG sound generators through the last generation before CD-quality streaming made constraints irrelevant. It covers the hardware, the synthesis paradigms, the composition techniques, and the philosophy that made this music iconic.<br />
<br />
The scope is intentional: it stops at the point where audio became unlimited. Once a system is just streaming a pre-mixed studio recording off a disc, it's out of scope. This document lives in the world of <span style="font-weight: bold;" class="mycode_b">chips, cartridges, small samples, and real-time synthesis</span>.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What It Covers</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Sequencing vs streaming</span> — the foundational concept that explains why chip-era music works the way it does, and why every clever trick is a workaround for channel count, waveform type, memory, or CPU time<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Three synthesis paradigms</span> — PSG (fixed waveforms), FM synthesis (operator modulation), and sample-based (PCM/wavetable), with clear explanations of how each sounds and why<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">System-by-system reference</span> — detailed breakdowns for Atari 2600 (TIA), NES/Famicom (2A03), Game Boy (DMG), Sega Master System (SN76489), Commodore 64 (SID), arcade FM era (YM2151), Sega Genesis (YM2612), SNES (S-SMP/SPC700), Amiga (Paula), and PC sound cards (AdLib/OPL)<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Universal composer techniques</span> — arpeggiation, channel economy, rapid parameter modulation, duty cycle manipulation, instrument multiplexing, sample looping, percussion strategy, and composing for loops<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Loop length reference data</span> — typical single-loop durations by music type with specific reference points from Secret of Mana, Final Fantasy VI, Chrono Trigger, and ActRaiser<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">The constraint-to-aesthetic principle</span> — why every limitation produced a distinctive sonic signature that people now deliberately recreate<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Timeline summary</span> — 1977 through 1992, system by system, chip by chip<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Application notes</span> — practical guidance for using this knowledge in AI music generation, tracker composition, or era-specific emulation<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">How to Use It</span></span><br />
<br />
Paste the contents into a new conversation as context, or attach the file directly. The AI will then understand the technical underpinnings of each era's sound well enough to help with composition, generation prompting, sound design discussions, or any project where you need to nail a specific retro audio aesthetic.<br />
<br />
Pairs well with music generation tools like <span style="font-weight: bold;" class="mycode_b">ACE-Step</span> when targeting specific era sounds — the prompting guidance in this document translates directly into caption dimensions for generation workflows.<br />
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Document Contents</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code># Retro Game Audio Bible

**Scope:** Game music from the chip/cartridge era — from the earliest PSG sound through the last generation before CD-quality streaming audio became the norm. Covers hardware constraints, how composers worked within them, and the techniques that defined each era's sound.

**Explicit boundary:** This document stops at the point where audio became "unlimited" — i.e., Red Book CD audio, full MP3-grade streaming tracks, PSX/Saturn CDDA and beyond. We stay in the world of chips, cartridges, small samples, and real-time synthesis. The moment a system is just streaming a pre-mixed studio recording off a disc, it's out of scope.

---

## 1. The Core Concept: Sequencing vs. Streaming

The single most important distinction in retro game audio:

**Streaming (out of scope):** Store a finished audio recording, play it back. Like a CD or MP3. Storage cost scales with length and quality. No real-time flexibility.

**Sequencing (the entire chip era):** Store a set of tiny instrument definitions (waveforms or short samples) plus a compact list of instructions — "play this note on this channel at this time, with this volume envelope." The sound chip generates the audio in real time. Storage cost is tiny; a full song might be a few KB. This is functionally like MIDI + a sound font.

Almost everything in this document is about sequencing. The composer isn't recording audio — they're writing a program that tells a synthesizer what to do, note by note, frame by frame. The constraints are about:
- How many things can play at once (channels/voices/polyphony)
- What each channel can sound like (waveform types, synthesis method)
- How much memory the instrument data + sequence data can occupy
- How much CPU time is available to update the sound chip

Understanding this is the key that unlocks everything else. Every clever trick in retro game music is a workaround for one of those four limits.

---

## 2. The Three Synthesis Paradigms

### 2.1 PSG (Programmable Sound Generator)
The earliest and simplest. Generates a small set of fixed waveforms — square/pulse, triangle, noise — directly in hardware. You control pitch, volume, and (sometimes) duty cycle. That's mostly it. Cheap, limited, and responsible for the classic "8-bit bleep" sound.

Examples: NES 2A03, Game Boy DMG, Sega Master System SN76489, Atari TIA, General Instruments AY-3-8910 (MSX, ZX Spectrum).

### 2.2 FM Synthesis (Frequency Modulation)
A leap forward. Instead of fixed waveforms, FM uses "operators" (sine wave oscillators) that modulate each other's frequency. A 4-operator channel can produce complex, evolving, metallic, bell-like, brass-like, or organ-like timbres impossible on a PSG. Harder to program — the relationship between operator settings and resulting sound is unintuitive — but vastly more expressive.

FM arrived in arcades in 1984 (Marble Madness, Yamaha YM2151) and became the factory standard for game composers from the mid-1980s to mid-1990s. The Yamaha DX7 synthesizer popularized the same technology.

Examples: Sega Genesis YM2612, arcade YM2151, PC AdLib/Sound Blaster OPL2/OPL3, Sega Master System FM add-on YM2413.

### 2.3 Sample-Based (PCM / Wavetable)
Store actual recorded audio snippets (samples) and play them back at varying pitches. This is how you get "real" instruments — a recorded piano note, a drum hit, an orchestral stab. The constraint is memory: samples eat storage fast, so early sample-based systems used tiny, short, low-bit-depth samples and looped them.

Examples: SNES S-SMP (fully sample-based), Amiga Paula, arcade PCM chips, and the sample channels bolted onto otherwise-PSG/FM systems (NES DMC, Genesis DAC channel).

**The hybrid reality:** Most 16-bit systems mixed paradigms. The Genesis is FM + PSG + one sample channel. The NES is PSG + one sample channel. This layering — melodic FM/PSG voices plus sampled percussion — defined the 16-bit sound.

---

## 3. System-by-System Reference

### 3.1 Atari 2600 (TIA) — 1977
- **Chip:** TIA (Television Interface Adaptor)
- **Channels:** 2
- **Type:** PSG, extremely primitive
- **The brutal constraint:** The TIA couldn't play in tune. Its pitch was derived from dividing the video clock, so available pitches didn't map to a proper musical scale. Composers had to choose notes that were "close enough" and write melodies that hid the tuning problems. This is the hardest compositional constraint of any system here.
- **Takeaway:** When the hardware can't even produce correct pitches, composition becomes about working around fundamental brokenness.

### 3.2 NES / Famicom (Ricoh 2A03/2A07) — 1983/1985
- **Channels:** 5 total
  - 2× pulse/square wave (duty cycles: 12.5%, 25%, 50%, 75%)
  - 1× triangle wave (no volume control — fixed volume)
  - 1× noise (pseudo-random, for percussion/effects)
  - 1× DMC (Delta Modulation Channel) — plays short DPCM samples
- **Type:** PSG + one sample channel
- **Polyphony:** Each channel is monophonic — one note at a time, no chords per channel.
- **Standard channel roles:**
  - Pulse 1 &amp; 2: melody and harmony (or melody + countermelody)
  - Triangle: bassline (and sometimes toms/kick)
  - Noise: percussion (hi-hats, snares, crashes)
  - DMC: richer sampled percussion or occasionally bass (Sunsoft games famously used it for bass)
- **Key techniques:**
  - **Arpeggios:** Rapidly cycling a single channel through the notes of a chord (e.g., root-third-fifth every few frames) to *imply* a chord with one monophonic voice. The signature "chirp" of NES chords.
  - **Duty cycle changes mid-note:** Switching pulse width during a note for timbral movement.
  - **Vibrato via pitch sweeps:** Rapid pitch modulation to add expression, since there's no dedicated vibrato.
  - **Rapid envelope updates:** Faking attack/decay by changing volume every frame.
  - **Triangle as lead:** A few games (Kirby's Adventure backing, SMB3 Boom Boom theme, Pipe Dream) broke convention and used triangle for melody.
  - **Channel interruption:** Borrowing a music channel for a sound effect, then returning it.
- **Expansion audio:** Famicom cartridges could add sound chips (Konami VRC6, VRC7, Nintendo FDS, Namco 163, Sunsoft 5B) giving extra channels — but only on Japanese Famicom, since the NES cartridge connector didn't pass the audio pin through. This is why some Japanese versions sound richer.
- **Notable composers:** Koji Kondo (Mario, Zelda), Hip Tanaka (Metroid), Tim Follin (technical showpieces).

### 3.3 Game Boy (DMG-CPU) — 1989
- **Channels:** 4
  - 2× pulse/square (duty cycles 12.5%, 25%, 50%, 75%; channel 1 has a hardware frequency sweep)
  - 1× wave channel — plays a user-definable 32-step, 4-bit waveform stored in Wave RAM (&#36;FF30-&#36;FF3F, 16 bytes)
  - 1× noise (LFSR-based; not true white noise, has audible periodic character)
- **Type:** PSG with a programmable-wavetable twist
- **Distinctive features:** Strong stereo panning (composers used hard-panning for width), and the wave channel's custom waveforms allowed more timbral variety than the NES. The wave channel is often used for bass or a second lead.
- **Key techniques:** Same arpeggio-for-chords approach as NES. Wave RAM can be rewritten mid-song to change the wave channel's timbre. Composers switch instrument parameters mid-channel to make one channel sound like two alternating instruments.
- **Notable composers:** Hirokazu Tanaka, Hip Tanaka, the LSDj/chiptune scene that grew around the hardware later.

### 3.4 Sega Master System / Mark III (SN76489 PSG) — 1985/1986
- **Channels:** 4
  - 3× square/tone
  - 1× noise
- **Type:** PSG (Texas Instruments SN76489, integrated into the VDP)
- **No sample channel** natively — PCM playback only via CPU trickery (rapid volume manipulation), which was expensive.
- **The FM add-on:** Japanese Mark III/Master System units (and the FM Sound Unit) included a **Yamaha YM2413 (OPL-derived FM chip)**. It offered 9 FM channels (or 6 FM + 5 percussion). Most Western games never used it, so Japanese versions of the same game often sound dramatically better.
- **Same chip family** appears in ColecoVision, BBC Micro, IBM PCjr, Tandy 1000.
- **Character:** Feels about half a generation behind the SID or even the NES — no secondary waveforms like the NES triangle, just pulses and noise. Composers leaned hard on arpeggios and rhythmic drive.

### 3.5 Commodore 64 (MOS 6581/8580 SID) — 1982
- **Channels:** 3 voices
- **Type:** Hybrid analog/digital synthesizer-on-a-chip — the standout of the 8-bit era
- **Per-voice features:**
  - 4 waveforms: triangle, sawtooth, pulse (variable width), noise
  - Full **ADSR envelope** per voice (attack, decay, sustain, release)
  - **Ring modulation** and **oscillator sync** between voices
- **Chip-wide:** A multi-mode **analog filter** (low-pass, band-pass, high-pass, notch) — any combination of voices could be routed through it for sweeps, wah, vocal-like timbres.
- **Why it mattered:** Designed by Bob Yannes as a real synth, not a beeper. It still sounds "modern" decades later because it's genuinely an analog subtractive synth. The two revisions (6581 rougher/warmer, 8580 cleaner) sound different, and each individual 6581 chip's filter sounds slightly different — like analog gear.
- **Key techniques:**
  - **Fast arpeggios as chords:** With only 3 voices, composers played chords by cycling one voice through chord tones at high speed — the signature C64 sound.
  - **Filter sweeps:** Timed cutoff automation for movement and drama.
  - **Multi-instrument voices:** Switching a voice's waveform/envelope rapidly so one voice plays bass AND lead in alternation.
  - **The "filter glitch" sample trick:** Rob Hubbard and others exploited SID quirks to play sampled drum hits — CPU-intensive, rarely used in gameplay.
  - **ADSR quirk exploitation:** Working with (not against) the buggy envelope generator.
- **Notable composers:** Rob Hubbard (Monty on the Run, Commando, International Karate), Martin Galway, Jeroen Tel, Chris Hülsbeck, Ben Daglish. These are the legends who established that constraints focus creativity rather than limiting it. Hubbard wrote long-form, prog-rock-inspired dynamic pieces that evolved over time.
- **Legacy:** The High Voltage SID Collection archives tens of thousands of tunes. The chip is still bought, cloned, and built into modern synths.

### 3.6 Arcade FM Era (Yamaha YM2151 and family) — 1984 onward
- **The shift:** Arcades introduced FM synthesis to games in 1984 (Marble Madness, YM2151). Arcades had bigger boards, more chips, and no cartridge memory limit the way consoles did, so they pushed ahead of home systems.
- **Common approach:** Multiple sound chips per board. Konami's Gyruss (1983) used five synthesis chips plus a DAC to render Bach. FM chips (YM2151, YM2203) provided melodic voices; dedicated PCM chips (SegaPCM, OKI ADPCM) provided sampled drums and voices.
- **Why arcades sounded better:** More silicon, more channels, more PCM, and often the composer had a known fixed hardware target to optimize for.
- **The YM2203 (OPN):** 3 FM + 3 SSG (PSG) channels. Progenitor of the whole OPN family that led to the Genesis chip.

### 3.7 Sega Genesis / Mega Drive (YM2612 + SN76489) — 1988/1989
- **Chips:** Yamaha YM2612 (FM) + Texas Instruments SN76489 (PSG, in the VDP)
- **Channels:** 10 total for tone
  - 6× FM (4-operator each), the 6th switchable to an 8-bit PCM sample channel (can't do both FM and PCM at once)
  - 3× PSG square + 1× PSG noise
- **Type:** FM + PSG + one sample channel — stereo output
- **The defining challenge:** FM synthesis is hard to program well. Composers who mastered it (Streets of Rage, Thunder Force, Sonic) got rich, aggressive, "warm" tones. Those who didn't got the thin, honky sound Genesis is sometimes criticized for. The chip rewarded deep understanding.
- **PCM handling:** The DAC/PCM channel had no hardware timing buffer, so the Z80 coprocessor had to babysit sample playback in software to avoid locking up the main 68000 CPU. This is why drum-heavy Genesis music often sacrificed the 6th FM channel.
- **The "ladder effect":** The original YM2612 had a distortion quirk (bit truncation on the negative edge of waveforms) that became part of its signature grit. Later revisions (YM3438/Model 2) cleaned it up, changing the sound.
- **No 16-bit sampling** — the sample channel was 8-bit, used mostly for percussion and voice.
- **Notable composers:** Yuzo Koshiro (Streets of Rage — famous for a custom assembly-language music driver that squeezed dance/house production out of the chip), Masato Nakamura (Sonic).

### 3.8 Super Nintendo / Super Famicom (S-SMP: SPC700 + S-DSP) — 1990/1991
- **Chip:** Sony S-SMP — SPC700 CPU + 8-channel DSP, fully self-contained with its own 64KB RAM
- **Channels:** 8, all sample-based (ADPCM)
- **Type:** Fully sample-based (the opposite philosophy from the Genesis's FM approach)
- **Features:**
  - BRR (Bit Rate Reduction) ADPCM compression — packs 16 samples into 9 bytes
  - Hardware ADSR envelopes per channel
  - Built-in **echo/reverb** (a hardware DSP effect — hugely responsible for the lush SNES sound)
  - Pitch modulation, stereo panning, noise
- **The 64KB constraint:** Everything — sound driver code, all instrument samples, and sequence data — shared one 64KB block. About 3.6 seconds of raw BRR-compressed audio could fit in the whole space. So composers used tiny, cleverly-looped instrument samples and spent the rest of the budget on sequence data. Rich samples meant less room for musical complexity, and vice versa. This is the central trade-off of SNES composition.
- **Channel allocation strategy:** Some developers reserved channels for sound effects; Square (Secret of Mana) used all 8 for music and interrupted channels for SFX, getting richer music at the cost of occasional audible pauses.
- **Why it sounds "warm":** Real sampled instruments + hardware reverb + the gentle low-pass character of BRR/Gaussian interpolation = the signature dreamy SNES tone.
- **Dynamic RAM tricks:** For long set-pieces (FF6's "Dancing Mad," 17:35, and "Balance Is Restored" ending, 21:29), the main CPU streamed new sample/sequence data into the S-SMP's RAM mid-piece, section by section, since these were scripted non-looping events. This is also why some games can't be captured as static SPC dumps.
- **Notable composers:** Koji Kondo (Super Mario World, Zelda: A Link to the Past), Nobuo Uematsu (Final Fantasy), Yasunori Mitsuda (Chrono Trigger), Hiroki Kikuta (Secret of Mana — pushed the hardware further than almost anyone, custom-synced title music to visuals), David Wise (Donkey Kong Country — used long high-quality samples and atmospheric ambient techniques).

### 3.9 Commodore Amiga (Paula) — 1985
- **Chip:** Paula (part of the Amiga custom chipset)
- **Channels:** 4, all sample-based PCM
- **Type:** Fully sample-based, 8-bit, DMA-driven, up to ~28kHz
- **Significance:** First affordable home system with real PCM sample playback. Two channels feed left, two feed right (stereo). The Fairlight CMI synthesizer offered similar sampling for &#36;25,000 a few years earlier; Paula democratized it.
- **The tracker revolution:** In 1987 Karsten Obarski wrote **Ultimate Soundtracker**, creating the **MOD file format** and the tracker workflow — a grid where you enter notes, instrument numbers, and effects across 4 channels, 64 rows per pattern, sequencing patterns into songs. MOD files bundled the samples (up to 15, later 31 instruments) with the pattern data, staying tiny while sounding rich.
- **Constraints:**
  - 4 channels, 8-bit samples, limited Chip RAM (shared with graphics)
  - 31 instrument slots, tight sample-length budgets
- **Key techniques:**
  - **Software channel multiplexing:** OctaMED and others mixed multiple virtual channels into Paula's 4 hardware channels (e.g., Turrican 2 title music uses 7).
  - **Chip-mod / "fakebit":** Playing tiny single-cycle waveform samples to get C64/NES-style timbres out of a sample chip.
  - **Two-channel bit-depth trick:** Combining two channels at different volumes to approximate 14-bit output.
  - **Cross-channel modulation:** Chaining channels to modulate each other, producing FM-like results.
- **Legacy:** The tracker paradigm went straight into PC (FastTracker, Impulse Tracker) and lives on in Renoise and OpenMPT. The demoscene grew up around Amiga music compos.
- **Note:** The MOD format expanded on PC to XM and IT with 32-64 channels in the late '90s. Once "channel economy" disappeared, tracker music ballooned into huge complex arrangements — a lead might use 3 channels (1 main + 2 echo), chords 4-5. This is the tail end of the tracker era edging toward the unlimited zone.

### 3.10 PC Sound Cards (AdLib / Sound Blaster, Yamaha OPL) — 1987 onward
- **AdLib (1987):** Yamaha OPL2 (YM3812) — 9 channels of 2-operator FM. The first widely-adopted PC music standard beyond the internal beeper.
- **Sound Blaster (1989):** Added a DAC for digital sample playback alongside OPL FM. The combination — FM music + digital sound effects/voice — became the DOS gaming standard.
- **Sound Blaster 16 (1992):** OPL3 (YM262) — 18 channels, better FM.
- **General MIDI (1991):** Standardized 128 instruments so composers could write once and play across compatible devices (Roland Sound Canvas, etc.). The Secret of Monkey Island and other adventures leveraged this era.
- **Character:** OPL FM has a distinct "DOS game" sound — brighter and buzzier than the Genesis YM2612, since it's 2-operator vs 4-operator. LucasArts/Sierra adventure scores define the aesthetic.

---

## 4. The Universal Composer Techniques

These recur across nearly every constrained system. If you're emulating or evoking a retro sound, these are the moves:

### 4.1 Arpeggiation (Faking Chords)
The single most important technique. When each channel is monophonic and you only have 2-3 melodic channels, you can't play a full chord AND a melody AND a bass. Solution: cycle one channel rapidly through a chord's notes (root, third, fifth, root, third, fifth...) fast enough that the ear fuses them into a chord. The characteristic fast "bubbling" arpeggio IS the sound of the 8-bit era. NES, C64, Game Boy, SMS all rely on it heavily.

### 4.2 Channel Economy / Voice Allocation
With so few channels, every voice must earn its place. Typical 3-4 channel allocation:
- 1 channel: melody/lead
- 1 channel: bass
- 1 channel: harmony OR arpeggiated chords OR countermelody
- 1 channel: percussion (noise)

Composers constantly make trade-offs: drop the harmony during a drum fill, borrow the bass channel for a fill, etc. The arrangement is a resource-allocation puzzle as much as a musical one.

### 4.3 Rapid Parameter Modulation
Since hardware often lacks dedicated vibrato/tremolo/envelopes, composers fake them by changing parameters every frame (60Hz):
- **Vibrato:** rapid pitch wobble
- **Tremolo:** rapid volume wobble
- **Fake envelopes:** stepping volume down over frames to simulate decay
- **Duty cycle sweeps:** changing pulse width for timbral movement
- **PWM (pulse width modulation):** continuous duty sweeps for a "phasing" lead sound

### 4.4 Instrument Multiplexing on One Channel
Switching a channel's instrument settings mid-pattern so it alternates between roles — e.g., playing a bass note, then instantly reconfiguring to play a lead stab, then back. One channel doing two jobs by never doing them simultaneously.

### 4.5 Sample Looping and Reuse
On sample-based systems, memory is the enemy. Techniques:
- Loop a short sustain portion of a sample indefinitely (a 0.2s violin sustain loops to hold a long note)
- Reuse one sample at different pitches for multiple "instruments"
- Use very short/low-bit samples for percussion where fidelity matters less
- Find clean zero-crossing loop points to avoid clicks

### 4.6 Percussion Strategy
- **PSG systems:** Noise channel shaped with fast envelopes — short burst = hi-hat/snare, pitched noise = tom
- **Sample systems:** Dedicated short drum samples on a sample channel
- **NES/Genesis:** DMC/DAC channel for sampled drums, freeing tonal channels

### 4.7 Composing FOR Repetition (Loops)
Game music loops indefinitely, so it must be written to loop gracefully. Baroque and minimalist styles work well because they're built on repetition. Composers wrote loop points that flow seamlessly back to the start, and avoided dramatic one-time dynamic shifts that would feel wrong on repeat.

---

## 5. Loop Length Reference (Chip/Cartridge Era)

Because storage was sequence data (tiny), loop length was limited more by composition effort and memory for pattern data than by audio storage. Typical single-loop lengths:

| Music Type | Typical Loop | Notes |
|------------|-------------|-------|
| Title/menu | 4-30s | Short; sometimes non-looping jingles |
| Town/area (ambient) | 50-120s | The "place feeling" background loop |
| Overworld/field | 70-140s | More developed melodies |
| Dungeon | 45-90s | Atmospheric, repetition less noticed |
| Battle | 45-75s | Short, urgent |
| Boss | 55-90s | Slightly longer than normal battle |
| Character theme | 50-85s | Quick identity establishment |
| Victory/fanfare | 3-15s | Stingers |

**Reference points:**
- Secret of Mana (SNES): area BGM ~1:30-2:30, average ~2:15 (OST is single-loop length)
- Final Fantasy VI (SNES): estimated single loops ~55-110s
- Chrono Trigger (SNES): estimated single loops ~30-140s
- ActRaiser "Birth of the People": ~40s, heard for huge portions of the game — proves short loops work with the right compositional style (baroque)

**The big exceptions** (10+ minutes) only existed in scripted, non-looping contexts — final boss sequences and endings — where the game engine streamed new data to the sound chip in stages. Nobody wrote a 17-minute loop in 64KB.

---

## 6. The Constraint-to-Aesthetic Principle

The throughline of this entire era: **constraints didn't limit creativity, they focused it and created identity.**

- The NES arpeggio chirp exists because of monophonic channels — and became iconic.
- The C64's fast-arpeggio sound exists because of only 3 voices — and defined a genre.
- The SNES's warm dreaminess exists because of BRR compression + hardware reverb + tiny looped samples.
- The Genesis's aggressive grit exists because of FM synthesis + the ladder-effect distortion.
- The tracker workflow exists because of Paula's 4 channels and the need to bundle samples compactly.

Every "limitation" produced a distinctive sonic signature that people now deliberately recreate. When you remove the constraint (XM/IT trackers with 64 channels, CD audio), the distinctive identity often dissolves into generic capability. This is worth remembering for any project that wants a *specific* retro character — the constraint is the aesthetic.

---

## 7. Timeline Summary

| Year | System | Sound Hardware | Paradigm | Channels |
|------|--------|---------------|----------|----------|
| 1977 | Atari 2600 | TIA | PSG (untuned) | 2 |
| 1982 | Commodore 64 | MOS 6581 SID | Analog synth-on-chip | 3 |
| 1983 | NES/Famicom | Ricoh 2A03 | PSG + 1 sample | 5 |
| 1984 | Arcade (Marble Madness) | Yamaha YM2151 | FM | 8 |
| 1985 | Amiga | Paula | Sample (PCM) | 4 |
| 1985 | Sega Master System | SN76489 (+YM2413 FM) | PSG (+FM add-on) | 4 (+9) |
| 1987 | PC AdLib | Yamaha OPL2 | FM | 9 |
| 1989 | Game Boy | DMG-CPU | PSG + wavetable | 4 |
| 1988 | Sega Genesis | YM2612 + SN76489 | FM + PSG + 1 sample | 10 |
| 1990 | SNES/SFC | Sony S-SMP | Sample (ADPCM) + reverb | 8 |
| 1992 | PC Sound Blaster 16 | Yamaha OPL3 | FM + DAC | 18 |

*(After this: PSX/Saturn CD-DA streaming, full studio recordings off disc — out of scope.)*

---

## 8. Key Sources &amp; Further Reading

- Video Game Music Preservation Foundation Wiki (vgmpf.com) — chip specs, game rips, SPC/SID/etc.
- NESdev Wiki &amp; forums — deep NES/2A03 technical detail
- SMS Power (smspower.org) — Master System / SN76489 / YM2413
- MegaDrive Wiki / consolemods.org — YM2612 detail
- gbdev.gg8.se — Game Boy sound hardware
- Ludomusicology.org — academic analysis of PSG compositional strategies
- High Voltage SID Collection — C64 music archive
- superfamicom.org / wiki.superfamicom.org — SNES/SPC700 detail
- Copetti.org "Architecture of Consoles" series — excellent per-system technical writeups

---

## 9. Application Notes (for generation/composition projects)

If using this to inform AI music generation, tracker composition, or emulation of a specific era:

1. **Pick the paradigm first.** PSG chiptune, FM (Genesis/arcade/DOS), or sample-based (SNES/Amiga) — they sound fundamentally different.
2. **Respect channel counts** if authenticity matters. 3-4 voices forces the arpeggio-and-economy approach that makes it sound right.
3. **Match the era's percussion approach** — noise-channel drums vs sampled drums is a giveaway.
4. **Loop-aware composition** — write for seamless repetition, avoid one-time dramatic shifts.
5. **For "warm SNES" vibe:** sampled real instruments + reverb + gentle high-frequency rolloff.
6. **For "gritty Genesis" vibe:** FM timbres, aggressive, slightly distorted, punchy.
7. **For "chiptune" vibe:** pulse/square leads, triangle/wave bass, noise percussion, fast arpeggios.
8. **The constraint IS the aesthetic** — if you want a specific retro identity, impose the matching limitation deliberately rather than using unlimited modern capability.</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">Download the .zip below to use this document with your AI assistant.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=14" target="_blank" title="">retro-game-audio-bible-context.zip</a> (Size: 10.92 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Public Domain Bestiary]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=54</link>
			<pubDate>Sun, 23 Aug 2026 03:46:39 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=54</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Public Domain Bestiary</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">376 monsters, demons, spirits, and legendary creatures from world mythology — structured for AI, games, and creative work</span></span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
The Public Domain Bestiary is a structured reference dataset of <span style="font-weight: bold;" class="mycode_b">376 creatures</span> drawn from world mythology, folklore, public-domain literature, and grimoire demonology. Every entry is public domain in the United States as a concept or source material, making the collection a safe, ready-to-use foundation for worldbuilding, game design, writing, illustration, and any other creative work where you need monsters and don't want to worry about stepping on somebody's IP.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Three Formats, Same Data</span></span><br />
<br />
The dataset ships in three interchangeable formats — pick whichever fits your workflow:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">.html</span> — a self-contained, offline, searchable and filterable browser reference for human reading. Open it in any browser, no server needed. Supports dark mode, type filtering, region grouping, and a text search bar. This is the best way to browse the full collection.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">.json</span> — clean structured data intended for feeding into AI models or programmatic use. Types are stored as arrays. Includes metadata header with title, note, and total count.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">.csv</span> — a spreadsheet- and database-friendly format that imports directly into game engines such as Unreal Engine as a DataTable. Multiple type tags are pipe-separated for easy splitting.<br />
</li>
</ul>
<br />
All three files contain identical data. The .zip attachment at the bottom of this post includes all of them.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What It Covers</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">18 traditions</span> are represented across the collection:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Greek/Roman</span> — Minotaur, Hydra, Cerberus, Chimera, Medusa, Typhon, and more<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Norse/Germanic</span> — Fenrir, Jörmungandr, Draugr, Kraken, Nidhogg, Valkyrie<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Celtic/British</span> — Banshee, Dullahan, Kelpie, Púca, Fomorian<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Slavic</span> — Baba Yaga, Leshy, Rusalka, Strigoi, Zmey Gorynych<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Middle Eastern / Mesopotamian</span> — Djinn, Lamassu, Simurgh, Manticore, Pazuzu<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Japanese</span> — Oni, Kappa, Tengu, Yuki-Onna, Jorōgumo, Gashadokuro<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Chinese</span> — Qilin, Jiangshi, Pixiu, Hundun, Nian<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">South and Southeast Asian</span> — Naga, Garuda, Rakshasa, Yaksha, Manananggal<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">African</span> — Grootslang, Impundulu, Adze, Tokoloshe, Ammit<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Mesoamerican</span> — Quetzalcoatl, Ahuizotl, Cipactli, Nagual<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">South American</span> — Mapinguari, Encantado, Yacumama<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">North American</span> — Wendigo, Thunderbird, Skinwalker, Piasa<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Australian/Pacific</span> — Bunyip, Taniwha, Rainbow Serpent<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Finnish/Baltic</span> — Iku-Turso, Ajatar, Nakki<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Jewish/Biblical</span> — Golem, Leviathan, Behemoth, Dybbuk, Nephilim<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Universal Medieval European</span> — Basilisk, Griffin, Wyvern, Werewolf, Will-o'-the-wisp<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Public-domain classic literature</span> — Frankenstein's Monster, Dracula, Cthulhu, Morlocks, Martian Tripods<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Grimoire demonology</span> — the complete <span style="font-weight: bold;" class="mycode_b">72 demons of the Ars Goetia</span> from the Lesser Key of Solomon, plus additional figures from the Dictionnaire Infernal and Testament of Solomon<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Entry Structure</span></span><br />
<br />
Every creature carries a consistent set of fields:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Name</span> — the creature's name, with disambiguating notes where two share a name (e.g. the Goetic Asmoday versus Asmodeus of Tobit)<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Region / Tradition</span> — the cultural or literary origin it belongs to<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Types</span> — one or more classification tags from a consistent vocabulary: undead, beast, spirit, demon, dragon, humanoid, elemental, divine, aquatic, avian, shapeshifter<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Description</span> — a concise summary of the creature's appearance, behavior, and role in its source mythology<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Caveat</span> — where relevant, a usage warning flagging protected modern depictions, culturally sacred figures, or trademark concerns<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Source</span> — for literary and grimoire creatures, the originating work and date<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What an AI Can Do With It</span></span><br />
<br />
Feed any of the three files into an AI assistant as context and it gains a complete, organized reference it can draw on without inventing details or guessing at copyright status. With the data loaded, a model can:<br />
<ul class="mycode_list"><li>Recommend creatures that fit a given theme, biome, region, or tone<br />
</li>
<li>Generate enemy rosters, bestiary entries, or encounter tables for games<br />
</li>
<li>Expand any entry into full stat blocks, lore, dialogue, or design notes<br />
</li>
<li>Filter by tradition or type — every aquatic dragon, all Slavic spirits, demons suitable for a boss tier<br />
</li>
<li>Build new content grounded in real public-domain mythology rather than fabricated or copyright-uncertain material<br />
</li>
<li>Cross-reference creatures across traditions for comparative or fusion designs<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Important Usage Notes</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Public domain does not mean unrestricted in every way.</span> Mythology and folklore carry no copyright, but a specific modern depiction — such as Universal Pictures' Frankenstein design — may still be protected. Work from the original source description, not a film version.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Trademark can persist separately from copyright.</span> Some names like Tarzan and Zorro remain trademarked even where the character is public domain. Check the name before commercial use.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Some entries are culturally sacred.</span> Certain Indigenous, Aboriginal, and Maori figures are legally unrestricted but deserve research and respect before commercial use. These are flagged in the data's caveat field.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Verify 20th-century literary creatures</span> (such as Lovecraft's Cthulhu mythos entities) in your own jurisdiction before release, as public-domain status can vary by country.<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sample Entries</span></span><br />
<br />
To give you a feel for what the data looks like, here are a few entries pulled from across the collection:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Fenrir | Norse/Germanic | beast, divine
Monstrous wolf destined to devour Odin at Ragnarök.

Jorōgumo | Japanese | spirit, shapeshifter, beast
Spider-woman who seduces men with her beauty, then ensnares them in webs.

Ammit | African | beast, divine
Crocodile-lion-hippo chimera that devours unworthy souls.

Amduscias (Goetia #67) | Grimoire Demonology | demon
Duke commanding 29 legions; appears as a unicorn, gives concerts of invisible
instruments, bends trees.
Source: Lesser Key of Solomon (Ars Goetia), c. 1641

Frankenstein's Monster | Classic Literature | humanoid, undead
Reanimated creature of stitched corpses, intelligent and tragic.
Caveat: Novel text is public domain. Universal's flat-top bolt-neck design is
NOT — work from Shelley's description.
Source: Frankenstein (Mary Shelley), 1818</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">Download the .zip below containing all three formats (.html, .json, .csv).<br />
Open the HTML file in a browser to browse and search the full collection.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=13" target="_blank" title="">public-domain-bestiary-context.zip</a> (Size: 48.27 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Public Domain Bestiary</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">376 monsters, demons, spirits, and legendary creatures from world mythology — structured for AI, games, and creative work</span></span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
The Public Domain Bestiary is a structured reference dataset of <span style="font-weight: bold;" class="mycode_b">376 creatures</span> drawn from world mythology, folklore, public-domain literature, and grimoire demonology. Every entry is public domain in the United States as a concept or source material, making the collection a safe, ready-to-use foundation for worldbuilding, game design, writing, illustration, and any other creative work where you need monsters and don't want to worry about stepping on somebody's IP.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Three Formats, Same Data</span></span><br />
<br />
The dataset ships in three interchangeable formats — pick whichever fits your workflow:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">.html</span> — a self-contained, offline, searchable and filterable browser reference for human reading. Open it in any browser, no server needed. Supports dark mode, type filtering, region grouping, and a text search bar. This is the best way to browse the full collection.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">.json</span> — clean structured data intended for feeding into AI models or programmatic use. Types are stored as arrays. Includes metadata header with title, note, and total count.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">.csv</span> — a spreadsheet- and database-friendly format that imports directly into game engines such as Unreal Engine as a DataTable. Multiple type tags are pipe-separated for easy splitting.<br />
</li>
</ul>
<br />
All three files contain identical data. The .zip attachment at the bottom of this post includes all of them.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What It Covers</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">18 traditions</span> are represented across the collection:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Greek/Roman</span> — Minotaur, Hydra, Cerberus, Chimera, Medusa, Typhon, and more<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Norse/Germanic</span> — Fenrir, Jörmungandr, Draugr, Kraken, Nidhogg, Valkyrie<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Celtic/British</span> — Banshee, Dullahan, Kelpie, Púca, Fomorian<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Slavic</span> — Baba Yaga, Leshy, Rusalka, Strigoi, Zmey Gorynych<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Middle Eastern / Mesopotamian</span> — Djinn, Lamassu, Simurgh, Manticore, Pazuzu<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Japanese</span> — Oni, Kappa, Tengu, Yuki-Onna, Jorōgumo, Gashadokuro<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Chinese</span> — Qilin, Jiangshi, Pixiu, Hundun, Nian<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">South and Southeast Asian</span> — Naga, Garuda, Rakshasa, Yaksha, Manananggal<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">African</span> — Grootslang, Impundulu, Adze, Tokoloshe, Ammit<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Mesoamerican</span> — Quetzalcoatl, Ahuizotl, Cipactli, Nagual<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">South American</span> — Mapinguari, Encantado, Yacumama<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">North American</span> — Wendigo, Thunderbird, Skinwalker, Piasa<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Australian/Pacific</span> — Bunyip, Taniwha, Rainbow Serpent<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Finnish/Baltic</span> — Iku-Turso, Ajatar, Nakki<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Jewish/Biblical</span> — Golem, Leviathan, Behemoth, Dybbuk, Nephilim<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Universal Medieval European</span> — Basilisk, Griffin, Wyvern, Werewolf, Will-o'-the-wisp<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Public-domain classic literature</span> — Frankenstein's Monster, Dracula, Cthulhu, Morlocks, Martian Tripods<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Grimoire demonology</span> — the complete <span style="font-weight: bold;" class="mycode_b">72 demons of the Ars Goetia</span> from the Lesser Key of Solomon, plus additional figures from the Dictionnaire Infernal and Testament of Solomon<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Entry Structure</span></span><br />
<br />
Every creature carries a consistent set of fields:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Name</span> — the creature's name, with disambiguating notes where two share a name (e.g. the Goetic Asmoday versus Asmodeus of Tobit)<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Region / Tradition</span> — the cultural or literary origin it belongs to<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Types</span> — one or more classification tags from a consistent vocabulary: undead, beast, spirit, demon, dragon, humanoid, elemental, divine, aquatic, avian, shapeshifter<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Description</span> — a concise summary of the creature's appearance, behavior, and role in its source mythology<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Caveat</span> — where relevant, a usage warning flagging protected modern depictions, culturally sacred figures, or trademark concerns<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Source</span> — for literary and grimoire creatures, the originating work and date<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What an AI Can Do With It</span></span><br />
<br />
Feed any of the three files into an AI assistant as context and it gains a complete, organized reference it can draw on without inventing details or guessing at copyright status. With the data loaded, a model can:<br />
<ul class="mycode_list"><li>Recommend creatures that fit a given theme, biome, region, or tone<br />
</li>
<li>Generate enemy rosters, bestiary entries, or encounter tables for games<br />
</li>
<li>Expand any entry into full stat blocks, lore, dialogue, or design notes<br />
</li>
<li>Filter by tradition or type — every aquatic dragon, all Slavic spirits, demons suitable for a boss tier<br />
</li>
<li>Build new content grounded in real public-domain mythology rather than fabricated or copyright-uncertain material<br />
</li>
<li>Cross-reference creatures across traditions for comparative or fusion designs<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Important Usage Notes</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Public domain does not mean unrestricted in every way.</span> Mythology and folklore carry no copyright, but a specific modern depiction — such as Universal Pictures' Frankenstein design — may still be protected. Work from the original source description, not a film version.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Trademark can persist separately from copyright.</span> Some names like Tarzan and Zorro remain trademarked even where the character is public domain. Check the name before commercial use.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Some entries are culturally sacred.</span> Certain Indigenous, Aboriginal, and Maori figures are legally unrestricted but deserve research and respect before commercial use. These are flagged in the data's caveat field.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Verify 20th-century literary creatures</span> (such as Lovecraft's Cthulhu mythos entities) in your own jurisdiction before release, as public-domain status can vary by country.<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Sample Entries</span></span><br />
<br />
To give you a feel for what the data looks like, here are a few entries pulled from across the collection:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>Fenrir | Norse/Germanic | beast, divine
Monstrous wolf destined to devour Odin at Ragnarök.

Jorōgumo | Japanese | spirit, shapeshifter, beast
Spider-woman who seduces men with her beauty, then ensnares them in webs.

Ammit | African | beast, divine
Crocodile-lion-hippo chimera that devours unworthy souls.

Amduscias (Goetia #67) | Grimoire Demonology | demon
Duke commanding 29 legions; appears as a unicorn, gives concerts of invisible
instruments, bends trees.
Source: Lesser Key of Solomon (Ars Goetia), c. 1641

Frankenstein's Monster | Classic Literature | humanoid, undead
Reanimated creature of stitched corpses, intelligent and tragic.
Caveat: Novel text is public domain. Universal's flat-top bolt-neck design is
NOT — work from Shelley's description.
Source: Frankenstein (Mary Shelley), 1818</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">Download the .zip below containing all three formats (.html, .json, .csv).<br />
Open the HTML file in a browser to browse and search the full collection.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=13" target="_blank" title="">public-domain-bestiary-context.zip</a> (Size: 48.27 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Pixel Art in ComfyUI]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=53</link>
			<pubDate>Sun, 23 Aug 2026 03:46:05 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=53</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Pixel Art in ComfyUI — Context Document</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">AI-assisted pixel art generation using ComfyUI workflows, LoRAs, and custom nodes</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
This context document turns an AI assistant into a knowledgeable guide for generating authentic pixel art using <span style="font-weight: bold;" class="mycode_b">ComfyUI</span>. It covers the two main generation approaches (top-down recommended vs bottom-up), the best models and LoRAs for the job, and the custom node ecosystem that makes clean pixel art output possible.<br />
<br />
The document includes detailed coverage of <span style="font-weight: bold;" class="mycode_b">PixelArt Detector</span>, <span style="font-weight: bold;" class="mycode_b">Unfake Pixels</span>, <span style="font-weight: bold;" class="mycode_b">AI Pixel Art Enhancer</span>, and other custom nodes — what each one does, how to configure it, and when to use which. It walks through exact dimension control techniques for img2img same-size output, proper KSampler settings, prompting strategies with era-specific constraints, and palette management best practices.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What It Covers</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Two generation approaches</span> — top-down (generate at native resolution, downscale with nearest-neighbor) vs bottom-up (generate at target resolution directly), with clear guidance on why top-down wins<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Models and LoRAs</span> — Pixel Art XL, Sprite Shaper, Hard Edge (Flux), and Retro Diffusion with trigger words and weight recommendations<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Custom node reference</span> — six nodes from PixelArt Detector, Unfake Pixels edge-aware auto-scaling, AI Pixel Art Enhancer methods, and more<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Exact dimension control</span> — five techniques for getting precise output sizes including the Resize Sandwich, VAE encode at native res, and external ImageMagick<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Generation resolution table</span> — target size to generation resolution mapping with scale factors<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Prompting and palette management</span> — positive/negative prompt templates, era constraints (NES, SNES, Game Boy, modern), Lospec palette integration<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Sprite sheet workflow</span> — LoRA training, batch generation, background removal, grid arrangement, and validation<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Critical rules</span> — nearest-neighbor only, PNG only, integer multiples only, palette discipline<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">How to Use It</span></span><br />
<br />
Paste the contents of the document into a new conversation as context, or attach the file directly. The AI will then have detailed knowledge of ComfyUI pixel art workflows, node configurations, proper scaling techniques, and palette management — enough to help you build and troubleshoot complete pixel art generation pipelines.<br />
<br />
The document is workflow-agnostic and works with any ComfyUI setup. All custom nodes referenced are open source with installation commands included.<br />
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Document Contents</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code># Pixel Art in ComfyUI — Context Reference

## Two Approaches

**Top-Down (Recommended):** Generate at model-native resolution (512×512 SD1.5, 1024×1024 SDXL/Flux) with pixel art LoRA → nearest-neighbor downscale to target (÷8, ÷16) → palette quantize. Best results, most reliable.

**Bottom-Up:** Generate at target resolution directly (32×32, 64×64). Mostly fails — latent space too small (64×64 = 8×8 latent). Only viable with specialized models or heavy ControlNet guidance with low denoise.

## Models &amp; LoRAs

**Pixel Art XL LoRA v1.1 (NeriJS)** — Gold standard. SDXL 1.0 base. No trigger word. Weight 1.0–1.2. Don't use SDXL refiner. Works with 1 text encoder. Downscale 8× with nearest-neighbor for pixel-perfect output. `civitai.com/models/120096/pixel-art-xl`

**Pixel Art Diffusion XL — Sprite Shaper** — Full SDXL checkpoint for 16-bit style. `civitai.com/models/277680`

**Hard Edge Pixel Art LoRA** — Flux.1 Dev compatible. Trigger: "pixel art". Harder edges than SDXL LoRAs.

**Retro Diffusion** — Purpose-built pixel art model (cloud service, not local). Dramatically better than general models. `retrodiffusion.ai`

## Key Custom Nodes

**ComfyUI-PixelArt-Detector (dimtoneff)** — 6 nodes. MIT license. `github.com/dimtoneff/ComfyUI-PixelArt-Detector`
- PixelArt Detector (+Save): all-in-one reduce/resize/save
- PixelArt Detector (Image→): downscale + reduce, forward to next node
- PixelArt Palette Converter: swap palettes. Methods: Image.quantize (fast, MAXCOVERAGE best for pixel art), Grid.pixelate, NP.quantize, OpenCV.kmeans, Pycluster.kmeans/kmedians
- PixelArt Palette Loader: Lospec palettes with visual preview
- PixelArt Palette Generator: extract palette from image → color list output
- PixelArtAddDitherPattern: prepared + custom patterns
- Resize modes (v1.7.0+): "contain" (default, preserves AR), "fit" (crop to fill), "stretch" (exact dims, may distort). Set W&amp;H to 0 to disable.
- cleanup_pixels_threshold: 0.01–0.05 eliminates stray colors. Lower = more colors kept.

**ComfyUI-Unfake-Pixels (tauraloke)** — Edge-aware auto-scale. Sobel filter + tile voting detects true pixel size of AI output, downscales to real grid. `github.com/tauraloke/ComfyUI-Unfake-Pixels`
- downscale_method: "nearest" (crisper) or "dominant" (smoother)
- cleanup_jaggies: removes isolated noise pixels

**ComfyUI-PixelArt-Unfaker** — Enhanced fork. Adds exact target resolution (target_width/target_height), auto background removal, optimal crop/center to pixel grid, K-Means quantization. `github.com/ComfyNodePRs/PR-ComfyUI-PixelArt-Unfaker-4f850341`

**ComfyUI-AI-Pixel-Art-Enhancer (HSDHCdev)** — Output resolution always matches input. Grain sizing control. Palette input forces exact color mapping. Methods: most_frequent (logos/UI), average (portraits), edge_preserving (graphics), neighbor_aware (landscapes). `github.com/HSDHCdev/ComfyUI-AI-Pixel-Art-Enhancer`

**comfy_pixelization (filipemeneses)** — AI-based, higher quality. NON-COMMERCIAL license. Requires 3 checkpoint downloads.

**WAS Node Suite** — Commercial-safe pixelization. Slower, less refined than AI-based.

## Exact Dimension Control (img2img same-size output)

**Technique 1 — Resize Sandwich (most reliable):**
Load Image → upscale to model res with nearest-neighbor at integer multiple (64×64 → 512×512 = 8×) → VAE Encode → KSampler (denoise 0.3–0.6) → VAE Decode → downscale back with nearest-neighbor (÷8) → palette quantize → save. Upscale factor MUST be integer. Same factor up and down.

**Technique 2 — VAE Encode at native res (subtle changes only):**
Load 64×64 → VAE Encode (8×8 latent) → KSampler denoise 0.1–0.3 → VAE Decode → output 64×64. No resize needed. Only for palette shifts/subtle style transfer.

**Technique 3 — PixelArt Detector pipeline:**
Use PixelArt Detector (Image→) with resize_w/resize_h set to target. "stretch" mode forces exact dims.

**Technique 4 — Unfaker pipeline:**
Set target_width/target_height → auto grid detect → crop/align → downscale → pad/crop to exact target.

**Technique 5 — External ImageMagick:**
`magick convert input.png -resize 64x64&#92;! -filter point output.png`
`&#92;!` = force exact dims. `-filter point` = nearest-neighbor.

## Generation Resolution Table

| Target | Generate At | Scale Factor |
|---|---|---|
| 16×16 | 512×512 | ÷32 |
| 32×32 | 512×512 | ÷16 |
| 64×64 | 512×512 | ÷8 |
| 128×128 | 1024×1024 | ÷8 |
| 256×256 | 1024×1024 | ÷4 |

## KSampler Settings

Steps: 20–30. CFG: 5–8 (lower = more natural). Sampler: dpm++ 2m karras or euler_a. Scheduler: karras. Denoise: 1.0 txt2img, 0.3–0.5 img2img (preserve structure), 0.6+ heavy restyle.

## Prompting

**Positive:** `pixelart, {scene}, pixel-art, low-res, blocky, pixel art style, 8-bit graphics, sharp details, less colors, early computer game art`

**Negative:** `sloppy, messy, blurry, noisy, highly detailed, ultra textured, photo, realistic, high-resolution, photo-realistic, 3d render, depth of field, anti-aliasing, smooth shading, gradient`

**Era constraints:** NES: `4 colors, 32×32` | SNES: `16 colors, 64×64` | Game Boy: `4 shades green monochrome` | Modern: `128×128+, detailed shading`

## Palette Management

Palette quantization must happen INSIDE workflow, not as afterthought. Insert Palette Quantize inside KSampler loop to prevent out-of-gamut color propagation.

Sources: Lospec (`lospec.com/palette-list`), bundled PixelArt Detector palettes (NES, Game Boy, etc.), custom 1px-per-color images in palettes/1x directory.

Extract palette from existing art: PixelArt Palette Generator node or AI Pixel Art Enhancer (32×32 swatch grid output).

## Sprite Sheets

1. Train character LoRA (15–20 refs, lr ~0.0002, 15–20 epochs) for consistency
2. Batch generate individual frames with pose-specific prompts, same LoRA/sampler/palette
3. Background removal: Rembg (fast/good enough), SAM2 (better edges), or color-based
4. Grid arrangement via Image Grid node or Python script
5. Validate: identical dims + palette across all frames
- Same seed for related frames. Canvas Align node to center at fixed dims before save. No auto-crop.

## Sprite Size Reference

| Era | Size | Colors | Frames |
|---|---|---|---|
| NES/8-bit | 8–16px | 3–4 | 2–4 |
| SNES/16-bit | 16–32px | 16–24 | 4–8 |
| GBA/32-bit | 32–64px | 16–32 | 6–8 |
| Modern indie | 32–128px | 32+ | 8–12 |

32×32 is the sweet spot for AI generation.

## Critical Rules

- ALWAYS use "nearest-exact" interpolation for any pixel art scaling. Never bilinear/bicubic/lanczos.
- Save as PNG only. Never JPEG for pixel art.
- Integer multiples only for up/downscaling. Never fractional.
- Pixel art scaling must be integer only: 2×, 3×, 4×. Never 1.5×.
- Palette discipline is the #1 differentiator between fake and real pixel art.

## Node Installation

```
git clone https://github.com/dimtoneff/ComfyUI-PixelArt-Detector
git clone https://github.com/tauraloke/ComfyUI-Unfake-Pixels
git clone https://github.com/HSDHCdev/ComfyUI-AI-Pixel-Art-Enhancer
git clone https://github.com/filipemeneses/comfy_pixelization  # non-commercial
git clone https://github.com/WASasquatch/was-node-suite-comfyui
```</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">Download the .zip below to use this document with your AI assistant.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=12" target="_blank" title="">pixel-art-comfyui-context.zip</a> (Size: 3.47 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Pixel Art in ComfyUI — Context Document</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">AI-assisted pixel art generation using ComfyUI workflows, LoRAs, and custom nodes</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
This context document turns an AI assistant into a knowledgeable guide for generating authentic pixel art using <span style="font-weight: bold;" class="mycode_b">ComfyUI</span>. It covers the two main generation approaches (top-down recommended vs bottom-up), the best models and LoRAs for the job, and the custom node ecosystem that makes clean pixel art output possible.<br />
<br />
The document includes detailed coverage of <span style="font-weight: bold;" class="mycode_b">PixelArt Detector</span>, <span style="font-weight: bold;" class="mycode_b">Unfake Pixels</span>, <span style="font-weight: bold;" class="mycode_b">AI Pixel Art Enhancer</span>, and other custom nodes — what each one does, how to configure it, and when to use which. It walks through exact dimension control techniques for img2img same-size output, proper KSampler settings, prompting strategies with era-specific constraints, and palette management best practices.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What It Covers</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Two generation approaches</span> — top-down (generate at native resolution, downscale with nearest-neighbor) vs bottom-up (generate at target resolution directly), with clear guidance on why top-down wins<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Models and LoRAs</span> — Pixel Art XL, Sprite Shaper, Hard Edge (Flux), and Retro Diffusion with trigger words and weight recommendations<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Custom node reference</span> — six nodes from PixelArt Detector, Unfake Pixels edge-aware auto-scaling, AI Pixel Art Enhancer methods, and more<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Exact dimension control</span> — five techniques for getting precise output sizes including the Resize Sandwich, VAE encode at native res, and external ImageMagick<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Generation resolution table</span> — target size to generation resolution mapping with scale factors<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Prompting and palette management</span> — positive/negative prompt templates, era constraints (NES, SNES, Game Boy, modern), Lospec palette integration<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Sprite sheet workflow</span> — LoRA training, batch generation, background removal, grid arrangement, and validation<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Critical rules</span> — nearest-neighbor only, PNG only, integer multiples only, palette discipline<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">How to Use It</span></span><br />
<br />
Paste the contents of the document into a new conversation as context, or attach the file directly. The AI will then have detailed knowledge of ComfyUI pixel art workflows, node configurations, proper scaling techniques, and palette management — enough to help you build and troubleshoot complete pixel art generation pipelines.<br />
<br />
The document is workflow-agnostic and works with any ComfyUI setup. All custom nodes referenced are open source with installation commands included.<br />
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Document Contents</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code># Pixel Art in ComfyUI — Context Reference

## Two Approaches

**Top-Down (Recommended):** Generate at model-native resolution (512×512 SD1.5, 1024×1024 SDXL/Flux) with pixel art LoRA → nearest-neighbor downscale to target (÷8, ÷16) → palette quantize. Best results, most reliable.

**Bottom-Up:** Generate at target resolution directly (32×32, 64×64). Mostly fails — latent space too small (64×64 = 8×8 latent). Only viable with specialized models or heavy ControlNet guidance with low denoise.

## Models &amp; LoRAs

**Pixel Art XL LoRA v1.1 (NeriJS)** — Gold standard. SDXL 1.0 base. No trigger word. Weight 1.0–1.2. Don't use SDXL refiner. Works with 1 text encoder. Downscale 8× with nearest-neighbor for pixel-perfect output. `civitai.com/models/120096/pixel-art-xl`

**Pixel Art Diffusion XL — Sprite Shaper** — Full SDXL checkpoint for 16-bit style. `civitai.com/models/277680`

**Hard Edge Pixel Art LoRA** — Flux.1 Dev compatible. Trigger: "pixel art". Harder edges than SDXL LoRAs.

**Retro Diffusion** — Purpose-built pixel art model (cloud service, not local). Dramatically better than general models. `retrodiffusion.ai`

## Key Custom Nodes

**ComfyUI-PixelArt-Detector (dimtoneff)** — 6 nodes. MIT license. `github.com/dimtoneff/ComfyUI-PixelArt-Detector`
- PixelArt Detector (+Save): all-in-one reduce/resize/save
- PixelArt Detector (Image→): downscale + reduce, forward to next node
- PixelArt Palette Converter: swap palettes. Methods: Image.quantize (fast, MAXCOVERAGE best for pixel art), Grid.pixelate, NP.quantize, OpenCV.kmeans, Pycluster.kmeans/kmedians
- PixelArt Palette Loader: Lospec palettes with visual preview
- PixelArt Palette Generator: extract palette from image → color list output
- PixelArtAddDitherPattern: prepared + custom patterns
- Resize modes (v1.7.0+): "contain" (default, preserves AR), "fit" (crop to fill), "stretch" (exact dims, may distort). Set W&amp;H to 0 to disable.
- cleanup_pixels_threshold: 0.01–0.05 eliminates stray colors. Lower = more colors kept.

**ComfyUI-Unfake-Pixels (tauraloke)** — Edge-aware auto-scale. Sobel filter + tile voting detects true pixel size of AI output, downscales to real grid. `github.com/tauraloke/ComfyUI-Unfake-Pixels`
- downscale_method: "nearest" (crisper) or "dominant" (smoother)
- cleanup_jaggies: removes isolated noise pixels

**ComfyUI-PixelArt-Unfaker** — Enhanced fork. Adds exact target resolution (target_width/target_height), auto background removal, optimal crop/center to pixel grid, K-Means quantization. `github.com/ComfyNodePRs/PR-ComfyUI-PixelArt-Unfaker-4f850341`

**ComfyUI-AI-Pixel-Art-Enhancer (HSDHCdev)** — Output resolution always matches input. Grain sizing control. Palette input forces exact color mapping. Methods: most_frequent (logos/UI), average (portraits), edge_preserving (graphics), neighbor_aware (landscapes). `github.com/HSDHCdev/ComfyUI-AI-Pixel-Art-Enhancer`

**comfy_pixelization (filipemeneses)** — AI-based, higher quality. NON-COMMERCIAL license. Requires 3 checkpoint downloads.

**WAS Node Suite** — Commercial-safe pixelization. Slower, less refined than AI-based.

## Exact Dimension Control (img2img same-size output)

**Technique 1 — Resize Sandwich (most reliable):**
Load Image → upscale to model res with nearest-neighbor at integer multiple (64×64 → 512×512 = 8×) → VAE Encode → KSampler (denoise 0.3–0.6) → VAE Decode → downscale back with nearest-neighbor (÷8) → palette quantize → save. Upscale factor MUST be integer. Same factor up and down.

**Technique 2 — VAE Encode at native res (subtle changes only):**
Load 64×64 → VAE Encode (8×8 latent) → KSampler denoise 0.1–0.3 → VAE Decode → output 64×64. No resize needed. Only for palette shifts/subtle style transfer.

**Technique 3 — PixelArt Detector pipeline:**
Use PixelArt Detector (Image→) with resize_w/resize_h set to target. "stretch" mode forces exact dims.

**Technique 4 — Unfaker pipeline:**
Set target_width/target_height → auto grid detect → crop/align → downscale → pad/crop to exact target.

**Technique 5 — External ImageMagick:**
`magick convert input.png -resize 64x64&#92;! -filter point output.png`
`&#92;!` = force exact dims. `-filter point` = nearest-neighbor.

## Generation Resolution Table

| Target | Generate At | Scale Factor |
|---|---|---|
| 16×16 | 512×512 | ÷32 |
| 32×32 | 512×512 | ÷16 |
| 64×64 | 512×512 | ÷8 |
| 128×128 | 1024×1024 | ÷8 |
| 256×256 | 1024×1024 | ÷4 |

## KSampler Settings

Steps: 20–30. CFG: 5–8 (lower = more natural). Sampler: dpm++ 2m karras or euler_a. Scheduler: karras. Denoise: 1.0 txt2img, 0.3–0.5 img2img (preserve structure), 0.6+ heavy restyle.

## Prompting

**Positive:** `pixelart, {scene}, pixel-art, low-res, blocky, pixel art style, 8-bit graphics, sharp details, less colors, early computer game art`

**Negative:** `sloppy, messy, blurry, noisy, highly detailed, ultra textured, photo, realistic, high-resolution, photo-realistic, 3d render, depth of field, anti-aliasing, smooth shading, gradient`

**Era constraints:** NES: `4 colors, 32×32` | SNES: `16 colors, 64×64` | Game Boy: `4 shades green monochrome` | Modern: `128×128+, detailed shading`

## Palette Management

Palette quantization must happen INSIDE workflow, not as afterthought. Insert Palette Quantize inside KSampler loop to prevent out-of-gamut color propagation.

Sources: Lospec (`lospec.com/palette-list`), bundled PixelArt Detector palettes (NES, Game Boy, etc.), custom 1px-per-color images in palettes/1x directory.

Extract palette from existing art: PixelArt Palette Generator node or AI Pixel Art Enhancer (32×32 swatch grid output).

## Sprite Sheets

1. Train character LoRA (15–20 refs, lr ~0.0002, 15–20 epochs) for consistency
2. Batch generate individual frames with pose-specific prompts, same LoRA/sampler/palette
3. Background removal: Rembg (fast/good enough), SAM2 (better edges), or color-based
4. Grid arrangement via Image Grid node or Python script
5. Validate: identical dims + palette across all frames
- Same seed for related frames. Canvas Align node to center at fixed dims before save. No auto-crop.

## Sprite Size Reference

| Era | Size | Colors | Frames |
|---|---|---|---|
| NES/8-bit | 8–16px | 3–4 | 2–4 |
| SNES/16-bit | 16–32px | 16–24 | 4–8 |
| GBA/32-bit | 32–64px | 16–32 | 6–8 |
| Modern indie | 32–128px | 32+ | 8–12 |

32×32 is the sweet spot for AI generation.

## Critical Rules

- ALWAYS use "nearest-exact" interpolation for any pixel art scaling. Never bilinear/bicubic/lanczos.
- Save as PNG only. Never JPEG for pixel art.
- Integer multiples only for up/downscaling. Never fractional.
- Pixel art scaling must be integer only: 2×, 3×, 4×. Never 1.5×.
- Palette discipline is the #1 differentiator between fake and real pixel art.

## Node Installation

```
git clone https://github.com/dimtoneff/ComfyUI-PixelArt-Detector
git clone https://github.com/tauraloke/ComfyUI-Unfake-Pixels
git clone https://github.com/HSDHCdev/ComfyUI-AI-Pixel-Art-Enhancer
git clone https://github.com/filipemeneses/comfy_pixelization  # non-commercial
git clone https://github.com/WASasquatch/was-node-suite-comfyui
```</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">Download the .zip below to use this document with your AI assistant.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=12" target="_blank" title="">pixel-art-comfyui-context.zip</a> (Size: 3.47 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Pi4 Network Server]]></title>
			<link>https://forum.photonamus.com/showthread.php?tid=52</link>
			<pubDate>Sun, 23 Aug 2026 03:45:28 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.photonamus.com/member.php?action=profile&uid=1">Photonamus</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.photonamus.com/showthread.php?tid=52</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Pi4 Network Server Head — Context Document</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Complete reference for setting up a Raspberry Pi 4 as an always-on network management appliance with Docker, DNS, VPN, smart home, and monitoring</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
This context document gives an AI assistant comprehensive knowledge of how to set up and manage a <span style="font-weight: bold;" class="mycode_b">Raspberry Pi 4</span> as a dedicated network server — the always-on appliance that handles DNS, ad blocking, VPN, smart home control, monitoring, and container orchestration for your home network.<br />
<br />
The document covers the full stack from bare metal to running services: hardware selection and storage strategy, OS installation and hardening, Docker deployment, and a complete service catalog with working compose files. Every section includes the actual commands and configuration you need, not just theory.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What It Covers</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Hardware baseline</span> — Pi4 specs, storage strategy (SD vs USB SSD and why it matters), touchscreen setup options, and kiosk mode configuration for dashboard display<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Base OS installation</span> — Raspberry Pi OS Lite 64-bit, Imager configuration, first boot sequence, and static IP setup with NetworkManager<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">OS hardening</span> — SSH key auth with port change, UFW firewall rules, Fail2Ban configuration, and additional security measures<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Docker and container management</span> — installation, ARM64 considerations, moving Docker root to SSD, Portainer GUI, and CasaOS alternative<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Pi-hole + Unbound</span> — network-wide ad blocking with recursive DNS resolution for privacy, including Docker and bare-metal install paths, DNSSEC, and network integration methods<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">VPN</span> — WireGuard via PiVPN (self-hosted, port forwarding) and Tailscale (zero-config mesh), including split vs full tunnel and Pi-hole integration for mobile ad blocking<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Home Assistant</span> — Docker container deployment, Zigbee/Z-Wave/Thread integration, MQTT broker setup, Zigbee2MQTT, and touchscreen dashboard<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Network monitoring</span> — Uptime Kuma, Grafana + Prometheus stack, and Gotify push notifications<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">PC cluster orchestration</span> — using Pi4 as Docker Swarm manager or K3s control plane for desktop worker nodes, with Wake-on-LAN<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Reverse proxy</span> — Traefik with auto-discovery and Let's Encrypt, Nginx Proxy Manager alternative, and local DNS names via Pi-hole<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Additional services</span> — Nextcloud, Vaultwarden, Gitea, Jellyfin, Syncthing, Homer, Node-RED, and more with ports and notes<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Maintenance</span> — backup strategies, update procedures, health monitoring commands, cooling requirements, and reliability practices including UPS and watchdog timer<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Complete Docker Compose stack</span> — single reference compose file for the core service stack with .env template<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Network architecture diagram</span> — visual layout of how all services connect<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Quick-start checklist</span> — ordered deployment steps from flash to finished<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">How to Use It</span></span><br />
<br />
Paste the contents into a new conversation when you're setting up or managing a Pi4 server, or attach the file directly. The AI will then have enough context to help with everything from initial setup through troubleshooting running services — it knows the correct commands, the common pitfalls (like SD card write wear and undervoltage throttling), and how the services interconnect.<br />
<br />
The document uses generic placeholders throughout (192.168.1.X, youruser, piserver.local) so it works with any network configuration. Swap in your own values as you go.<br />
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Document Contents</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code># Pi4 Network Server Head — Complete Reference

&gt; Context document for AI-assisted setup and management of a Raspberry Pi 4 as an always-on network management appliance with touchscreen, wired Ethernet, and Docker-based service stack.

---

## 1. Hardware Baseline

**Board:** Raspberry Pi 4 Model B (2GB minimum, 4GB recommended, 8GB ideal for heavy Docker workloads)
**SoC:** Broadcom BCM2711, quad-core Cortex-A72 @ 1.5–1.8 GHz (arm64/aarch64)
**Network:** Gigabit Ethernet (true dedicated bus, not shared with USB like Pi3), dual-band 802.11ac Wi-Fi (not used — Ethernet only for server role)
**USB:** 2× USB 3.0, 2× USB 2.0 (for Zigbee/Z-Wave dongles, USB SSD, etc.)
**GPIO:** 40-pin header (available for relay control, sensors, HATs)
**Display:** DSI port for official 7" touchscreen (800×480, capacitive, 10-point multitouch)
**Power:** USB-C, 5.1V/3A minimum (use official PSU or quality 5V/3.5A to avoid undervoltage throttling — yellow lightning bolt icon = undervoltage)
**Power draw:** 5–15W depending on load; ~&#36;3–8/month to run 24/7

### Storage Strategy

- **SD card:** Use only for boot (Class 10 / A2 minimum, 32GB+). SD cards suffer from write amplification and wear under Docker's overlay2 I/O. Container startup: 5–15s on SD vs 1–2s on SSD.
- **USB SSD (recommended):** Boot from USB SSD for dramatically better I/O. Use `rpi-eeprom-update` to enable USB boot, then flash OS to SSD via Raspberry Pi Imager. A &#36;20–30 120GB SATA SSD via USB 3.0 adapter transforms performance and longevity.
- **If SD only:** Minimize writes — move Docker data dir, logs, and swap to a USB drive if possible. Reduce swappiness (`vm.swappiness=1`). Use `log2ram` to keep logs in RAM.

### Touchscreen Setup

**Official 7" Pi Touch Display:** DSI ribbon cable connection (labelled "DISPLAY" on Pi4). Adapter board mounts behind LCD; Pi4 mounts to adapter board standoffs. No additional drivers needed on Raspberry Pi OS.

**Cases with integrated touchscreen:**
- Official Pi Foundation case for 7" display (~&#36;15)
- SmartiPi Touch 2 (adjustable angle, VESA mount)
- SunFounder 7" or 10" all-in-one kits (IPS, integrated case + cooling)
- 3D-printed "Raspberry Show" style cases (Echo Show–inspired desk form factor)
- 3.5" SPI screens exist but are low-res (480×320) and refresh-limited — use 7" DSI for any dashboard role

**Kiosk mode for dashboard display:**
Install minimal X server + Chromium in kiosk mode to auto-launch dashboards (Home Assistant, Grafana, Pi-hole admin, Portainer) on boot:
```
sudo apt install xserver-xorg xinit chromium-browser openbox
```
Configure `/etc/xdg/openbox/autostart` to launch Chromium fullscreen pointing at `http://localhost:PORT`. Use `unclutter` to hide the mouse cursor after idle. Disable screen blanking with `xset s off` and `xset -dpms` in xinitrc.

---

## 2. Base OS Installation

**OS:** Raspberry Pi OS Lite 64-bit (Bookworm-based, Debian 12). Lite = no desktop, headless. 64-bit required for modern Docker images (most publish arm64 only now). Verify with `uname -m` → must show `aarch64` not `armv7l`.

**Flashing:** Use Raspberry Pi Imager. Under "OS Customisation" (gear icon):
- Enable SSH (password or key)
- Set hostname (e.g., `piserver`)
- Set username/password (do NOT use default `pi`)
- Configure locale/timezone
- (Optional) Configure Wi-Fi for initial headless access, disable after Ethernet is confirmed

**First boot sequence:**
```bash
# SSH in from another machine
ssh youruser@piserver.local

# Full system update
sudo apt update &amp;&amp; sudo apt full-upgrade -y
sudo reboot

# Set static IP (edit dhcpcd or NetworkManager depending on OS version)
# Bookworm uses NetworkManager by default:
sudo nmcli con mod "Wired connection 1" ipv4.addresses 192.168.1.X/24
sudo nmcli con mod "Wired connection 1" ipv4.gateway 192.168.1.1
sudo nmcli con mod "Wired connection 1" ipv4.dns "127.0.0.1"
sudo nmcli con mod "Wired connection 1" ipv4.method manual
sudo nmcli con up "Wired connection 1"
```

---

## 3. OS Hardening

### SSH Hardening
```bash
# Generate key pair on your workstation (not the Pi)
ssh-keygen -t ed25519

# Copy public key to Pi
ssh-copy-id -i ~/.ssh/id_ed25519.pub youruser@piserver.local

# On the Pi — edit sshd_config
sudo nano /etc/ssh/sshd_config
# Set:
#  PermitRootLogin no
#  PasswordAuthentication no
#  PubkeyAuthentication yes
#  Port 2222  (change from default 22)
sudo systemctl restart sshd
```

### Firewall (UFW)
```bash
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp  # SSH (your custom port)
sudo ufw allow 53/tcp    # DNS (Pi-hole)
sudo ufw allow 53/udp    # DNS (Pi-hole)
sudo ufw allow 80/tcp    # HTTP (dashboards)
sudo ufw allow 443/tcp    # HTTPS
sudo ufw allow 51820/udp  # WireGuard VPN
sudo ufw enable
```

### Fail2Ban
```bash
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# Under [sshd]:
#  enabled = true
#  port = 2222
#  maxretry = 3
#  bantime = 3600
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
```

### Additional Hardening
- Disable unused services: `sudo systemctl disable bluetooth`, `sudo systemctl disable avahi-daemon` (unless using .local mDNS)
- Automatic security updates: `sudo apt install unattended-upgrades -y`
- Remove default `pi` user if it exists: `sudo deluser pi`
- Set `HISTSIZE=1000` and `HISTFILESIZE=2000` in `.bashrc`
- Consider AIDE (file integrity monitoring) for paranoid setups

---

## 4. Docker &amp; Container Management

### Docker Installation
```bash
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker &#36;USER
# Log out and back in for group change
docker --version
docker compose version  # v2 included automatically
```

### Key Docker Concepts for Pi4
- Pi4 runs `arm64` (aarch64). `docker pull` auto-selects correct architecture from multi-arch images.
- LinuxServer.io (LSIO) images are reliable ARM64 builds.
- If SD-card storage: move Docker root to USB SSD:
  ```bash
  sudo systemctl stop docker
  sudo rsync -aP /var/lib/docker/ /mnt/ssd/docker/
  # Edit /etc/docker/daemon.json:
  { "data-root": "/mnt/ssd/docker" }
  sudo systemctl start docker
  ```
- Use `restart: unless-stopped` on all services for auto-recovery after reboot.

### Portainer (Container GUI)
```yaml
# docker-compose.yml
services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    ports:
      - "9443:9443"
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    restart: unless-stopped
volumes:
  portainer_data:
```
Access at `https://piserver.local:9443`. Provides web GUI for managing all Docker containers, images, volumes, networks. Supports Docker Compose stack deployment from the UI.

### CasaOS (Alternative)
CasaOS is a beginner-friendly GUI layer over Docker. One-line install: `curl -fsSL https://get.casaos.io | sudo bash`. Provides an app store UI for deploying containers (Pi-hole, Nextcloud, Jellyfin, etc.) without writing compose files. Good for non-technical household members. Runs on port 80 by default.

---

## 5. DNS &amp; Ad Blocking — Pi-hole + Unbound

### Pi-hole (Network-Wide Ad Blocker)

Pi-hole acts as DNS sinkhole. All devices on network point DNS to Pi4. Ads, trackers, malware domains get null responses — never load. Blocks 35–45% of all DNS requests in a typical home network (40,000–80,000 queries/day blocked for ~12 devices).

**Pi-hole v6 (current as of 2026):** Major rewrite. FTL has embedded web server (no more lighttpd). Single config file `/etc/pihole/pihole.toml`. Docker image switched from Debian to Alpine (113MB → 38MB).

```yaml
# Docker Compose for Pi-hole
services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "8080:80/tcp"
    environment:
      TZ: "America/New_York"
      WEBPASSWORD: "CHANGEME"
    volumes:
      - pihole_data:/etc/pihole
      - pihole_dnsmasq:/etc/dnsmasq.d
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
volumes:
  pihole_data:
  pihole_dnsmasq:
```

**Bare-metal install (alternative):**
```bash
curl -sSL https://install.pi-hole.net | bash
# Follow interactive installer
# Set password: pihole -a -p YourPassword
```

**Network integration — two methods:**
1. **Router DNS method:** Set router's DHCP DNS server to Pi4's static IP. All devices auto-use Pi-hole. No per-device config.
2. **Pi-hole as DHCP server:** Disable DHCP on router, enable in Pi-hole admin. Pi-hole assigns IPs and DNS. Better hostname resolution but more complex.

**Blocklists:** Default Steven Black unified list is good baseline. Add community lists from firebog.net for expanded coverage. Admin dashboard: `http://piserver.local:8080/admin`.

### Unbound (Recursive DNS Resolver)

Without Unbound, Pi-hole forwards queries to upstream DNS (Cloudflare, Google, etc.) — those providers see every domain you resolve. Unbound resolves recursively by walking the DNS hierarchy from root servers. No third-party sees your full query history.

**Architecture:** Pi-hole listens on port 53 → filters ads → forwards allowed queries to Unbound on port 5335 → Unbound resolves recursively against authoritative nameservers.

```bash
sudo apt install unbound -y

# Create Pi-hole-optimized config
sudo nano /etc/unbound/unbound.conf.d/pi-hole.conf
```

```yaml
server:
    verbosity: 0
    interface: 127.0.0.1
    port: 5335
    do-ip4: yes
    do-udp: yes
    do-tcp: yes
    do-ip6: no
    prefer-ip6: no
    harden-glue: yes
    harden-dnssec-stripped: yes
    use-caps-for-id: no
    edns-buffer-size: 1232
    prefetch: yes
    num-threads: 1
    so-rcvbuf: 1m
    private-address: 192.168.0.0/16
    private-address: 172.16.0.0/12
    private-address: 10.0.0.0/8
```

```bash
sudo systemctl enable unbound
sudo systemctl start unbound
# Test: dig pi-hole.net @127.0.0.1 -p 5335
```

In Pi-hole admin → Settings → DNS: set Custom Upstream DNS to `127.0.0.1#5335`. Remove all other upstream servers.

**Trade-off:** First lookup for any domain is slower (Unbound must walk hierarchy). Subsequent queries are cached locally. For most home networks the difference is imperceptible.

### DNSSEC
Unbound validates DNSSEC by default. Protects against DNS cache poisoning and response spoofing. Does NOT encrypt queries in transit (use DoT/DoH at the Unbound level for that, but it's optional and adds complexity).

---

## 6. VPN — WireGuard / Tailscale

### WireGuard via PiVPN (Self-Hosted VPN)

WireGuard: modern VPN protocol, ~4,000 lines of code (vs OpenVPN's 70,000+), faster, simpler, ChaCha20 encryption. Pi4 handles 20–50 simultaneous connections comfortably.

```bash
curl -L https://install.pivpn.io | bash
# Select WireGuard (not OpenVPN)
# Choose your Ethernet interface
# Set VPN port (default 51820/UDP)
# Choose DNS provider (select Pi-hole if running)
# Use your public IP or dynamic DNS hostname
```

**Port forwarding required:** Forward UDP 51820 on your router to Pi4's static IP.

**Client management:**
```bash
pivpn add      # Create client profile (generates .conf + QR code)
pivpn list      # Show all clients
pivpn remove    # Remove a client
pivpn qr        # Show QR code for mobile import
```

**Split vs Full tunnel:**
- Split tunnel: only home network traffic goes through VPN (access LAN remotely)
- Full tunnel: ALL traffic routes through VPN (secure public Wi-Fi)
- Create both profiles for different use cases

**Pi-hole + WireGuard combo:** Route VPN DNS through Pi-hole. Ad blocking follows you everywhere — mobile, laptop on public Wi-Fi, travel.

### Tailscale (Zero-Config Mesh VPN)

Alternative to self-hosted WireGuard. No port forwarding needed. Built on WireGuard protocol but with automatic NAT traversal, key management, and mesh networking.

```bash
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# Authenticate via URL provided
```

**Key features:**
- Mesh network: devices connect directly peer-to-peer
- Subnet router: Pi4 can expose entire LAN to your tailnet (`sudo tailscale up --advertise-routes=192.168.1.0/24`)
- Exit node: route all traffic through Pi4 when remote
- MagicDNS: access devices by hostname
- ACLs: control which devices can see what
- Free tier: up to 100 devices, 3 users

**Pi4 as subnet router:** All devices on tailnet can access your home LAN through the Pi4 — NAS, printers, other PCs — without installing Tailscale on each.

**Disable key expiry** for always-on devices (Pi4, NAS): Tailscale admin console → Machines → select Pi → Disable key expiry.

---

## 7. Smart Home — Home Assistant

### Overview

Home Assistant (HA) is open-source, privacy-first home automation. Emphasis on LOCAL control — devices controlled directly over LAN without cloud dependency. Runs on Pi4 via HAOS image or Docker container. 2,000+ integrations.

### Installation Methods

**Method 1: Home Assistant OS (HAOS) — dedicated Pi4**
Flash the HAOS image directly. Pi4 becomes a dedicated HA appliance. Includes Supervisor for add-on management. Best integration, simplest updates, but Pi4 can't easily run other services.

**Method 2: Docker container — shared Pi4 (recommended for this use case)**
```yaml
services:
  homeassistant:
    image: ghcr.io/home-assistant/home-assistant:stable
    container_name: homeassistant
    network_mode: host
    privileged: true
    volumes:
      - ha_config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
volumes:
  ha_config:
```
Access at `http://piserver.local:8123`. Loses Supervisor/add-on system but runs alongside Pi-hole, WireGuard, monitoring, etc.

### Offline / Local Control

HA was built for local-first operation. Works without internet if devices use local protocols:
- **Zigbee:** Requires USB coordinator dongle (&#36;15–25, e.g., SONOFF Zigbee 3.0, Conbee II). Use ZHA integration (built-in) or Zigbee2MQTT. Fully local. Wide device support (lights, sensors, switches, locks).
- **Z-Wave:** Requires USB Z-Wave stick (e.g., Aeotec Z-Stick Gen5+). Use Z-Wave JS integration. Fully local. Strong for locks, thermostats, switches.
- **Wi-Fi (local):** Devices running Tasmota, ESPHome firmware communicate over local network only. No cloud.
- **Thread/Matter:** Newer protocol standard. Local-first by design. Pi4 can act as Thread border router with appropriate hardware.

**MQTT broker (Mosquitto):** Central message bus for IoT. Lightweight publish/subscribe protocol. All Zigbee2MQTT and many other integrations route through it.
```bash
sudo apt install mosquitto mosquitto-clients -y
sudo systemctl enable mosquitto
```
Or via Docker:
```yaml
services:
  mosquitto:
    image: eclipse-mosquitto:2
    container_name: mosquitto
    ports:
      - "1883:1883"
    volumes:
      - mosquitto_config:/mosquitto/config
      - mosquitto_data:/mosquitto/data
    restart: unless-stopped
```

### Zigbee2MQTT (Alternative to ZHA)
Bridges Zigbee coordinator to MQTT. More device support than ZHA, runs outside HA (survives HA restarts), web dashboard for device management.
```yaml
services:
  zigbee2mqtt:
    image: koenkk/zigbee2mqtt
    container_name: zigbee2mqtt
    volumes:
      - z2m_data:/app/data
      - /run/udev:/run/udev:ro
    ports:
      - "8082:8080"
    environment:
      TZ: "America/New_York"
    devices:
      - /dev/ttyUSB0:/dev/ttyUSB0
    restart: unless-stopped
```

### Touchscreen Integration
Run Chromium in kiosk mode (see Section 1) pointing at `http://localhost:8123`. Create a dedicated HA user with a custom dashboard optimized for touch (large buttons, status cards). Auto-login via HA trusted networks or long-lived access token.

---

## 8. Network Monitoring

### Uptime Kuma (Service Monitor)
Lightweight, open-source. Monitors HTTP, TCP, DNS, ICMP ping, Docker containers. Real-time dashboard, historical stats (24h/7d/30d). 90+ notification channels (Telegram, Discord, email, Gotify). Pi4 handles 50–100+ monitors easily. ~76,000 GitHub stars, current version 2.1.3 (Feb 2026). Integrates with Home Assistant as of HA 2025.8 (binary sensors per monitor).

```yaml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    ports:
      - "3001:3001"
    volumes:
      - uptime_kuma_data:/app/data
    restart: unless-stopped
```

### Grafana + Prometheus (Advanced Monitoring)
Full metrics stack. Prometheus scrapes time-series data; Grafana visualizes. Pre-built Raspberry Pi dashboards (CPU, memory, disk I/O, temperature). Can ingest Uptime Kuma metrics via Prometheus exporter.

```yaml
services:
  prometheus:
    image: prom/prometheus:latest
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    restart: unless-stopped

  grafana:
    image: grafana/grafana:latest
    ports:
      - "3030:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    restart: unless-stopped
```

### Gotify (Push Notifications)
Self-hosted notification server. Receives alerts from Uptime Kuma, Grafana, custom scripts. Android app available. Replaces dependency on Pushover/Ntfy cloud services.

### Recommended Monitoring Stack
"Holy trinity" for home labs: Uptime Kuma (service uptime) + Beszel or Pulse (host metrics) + Gotify (alerting). Grafana/Prometheus for deep-dive dashboards if desired.

---

## 9. PC Cluster / Network Orchestration

### Using Pi4 as Control Plane for Desktop PCs

The Pi4 can serve as the management/control plane node while desktop PCs (x86_64) serve as worker nodes. Two main approaches:

### Approach A: Docker Swarm (Simpler)
- Pi4 runs as Swarm manager
- Desktop PCs join as worker nodes
- Manages containerized services across the cluster
- Built-in load balancing and scaling
- Good for: distributed web apps, batch processing, CI/CD runners
```bash
# On Pi4 (manager):
docker swarm init --advertise-addr 192.168.1.X
# Shows join token

# On each desktop PC (worker):
docker swarm join --token SWMTKN-xxxxx 192.168.1.X:2377
```
**Mixed architecture caveat:** Images must be multi-arch (arm64 + amd64). Pi4 manager runs arm64; x86 workers run amd64. Use multi-arch images or constrain services to specific node architectures via placement constraints.

### Approach B: K3s Lightweight Kubernetes (More Powerful)
K3s: single binary (~70MB), includes API server, scheduler, controller manager, kubelet, containerd, Flannel CNI, Traefik ingress, CoreDNS. Supports mixed arm64/amd64 clusters natively.

```bash
# On Pi4 (control plane):
curl -sfL https://get.k3s.io | sh -
# Get join token:
cat /var/lib/rancher/k3s/server/node-token

# On each desktop PC (worker):
curl -sfL https://get.k3s.io | K3S_URL=https://piserver:6443 K3S_TOKEN=XXX sh -
```

**Pi4 resource budget for K3s control plane:**
- K3s server: ~500MB RAM
- System: ~300MB RAM
- Available for workloads: ~2.7GB (on 4GB Pi4)
- OS buffer/cache: ~500MB

**Use cases for Pi4-managed PC cluster:**
- Distributed build/CI runners (GitHub Actions self-hosted, Drone)
- Distributed rendering (Blender render farm)
- Game server hosting across machines
- Distributed storage (GlusterFS across nodes)
- Learning enterprise orchestration patterns

### Wake-on-LAN (WoL)
Pi4 can wake sleeping/powered-off PCs on demand:
```bash
sudo apt install wakeonlan -y
wakeonlan AA:BB:CC:DD:EE:FF  # MAC address of target PC
```
Combine with Home Assistant automations or cron jobs. Useful for spinning up worker nodes only when needed (power savings). Requires WoL enabled in each PC's BIOS/UEFI and network adapter settings.

---

## 10. Reverse Proxy

### Traefik (Recommended for Docker)
Auto-discovers Docker containers, auto-configures routing, auto-manages Let's Encrypt TLS certificates. Label-based configuration — no manual config file updates per service.

```yaml
services:
  traefik:
    image: traefik:v3.0
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--entrypoints.web.address=:80"
    ports:
      - "80:80"
      - "8180:8080"  # Traefik dashboard
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: unless-stopped
```

Other services add Traefik labels:
```yaml
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.pihole.rule=Host(`pihole.local`)"
```

### Nginx Proxy Manager (Alternative)
Web GUI for reverse proxy config. Simpler for those uncomfortable with label/file-based config. Supports Let's Encrypt, access lists, custom locations.

### Local DNS Names
Use Pi-hole's "Local DNS → DNS Records" to create custom hostnames:
- `pihole.home` → 192.168.1.X
- `grafana.home` → 192.168.1.X
- `ha.home` → 192.168.1.X

Combined with reverse proxy, access services by name instead of IP:port.

---

## 11. Additional Services Worth Running

| Service | Purpose | Port | Notes |
|---|---|---|---|
| **Nextcloud** | Self-hosted cloud storage/sync | 8443 | Pi4 handles light use; heavy use benefits from SSD |
| **Vaultwarden** | Bitwarden-compatible password manager | 8081 | Very lightweight, perfect for Pi4 |
| **Nginx/Caddy** | Static site hosting | 80/443 | Host personal website directly |
| **Gitea** | Self-hosted Git | 3000 | Lightweight GitHub alternative |
| **Jellyfin** | Media server | 8096 | Pi4 can direct-play most formats; no hardware transcoding on Pi4 GPU |
| **Syncthing** | File sync between devices | 8384 | Replaces Dropbox/Google Drive |
| **Homer/Homarr** | Dashboard/homepage | 8083 | Landing page linking all services |
| **Node-RED** | Visual automation flows | 1880 | Bridges HA, MQTT, APIs, scripts |
| **n8n** | Workflow automation | 5678 | Self-hosted Zapier alternative |
| **Ntfy/Gotify** | Push notifications | 8085 | Self-hosted push service |
| **Speedtest Tracker** | ISP speed monitoring | 8765 | Tracks download/upload/latency over time |

---

## 12. Maintenance &amp; Best Practices

### Backups
```bash
# Backup all Docker volumes
sudo tar czf /mnt/backup/docker-volumes-&#36;(date +%F).tar.gz /var/lib/docker/volumes/

# Or use restic for incremental encrypted backups
sudo apt install restic -y
restic init --repo /mnt/backup/restic-repo
restic backup /var/lib/docker/volumes/ /etc/pihole/ /etc/unbound/
```

### Updates
```bash
# System
sudo apt update &amp;&amp; sudo apt upgrade -y

# Docker images
docker compose pull    # Pull latest images
docker compose up -d  # Recreate with new images
docker image prune -f  # Clean old images

# Pi-hole
pihole -up  # If bare-metal install

# Automate with cron:
# 0 3 * * 0 docker compose -f /home/youruser/docker-compose.yml pull &amp;&amp; docker compose -f /home/youruser/docker-compose.yml up -d
```

### Monitoring Pi Health
```bash
# CPU temperature (throttles at 80°C, shuts down at 85°C)
vcgencmd measure_temp

# Voltage/throttling status
vcgencmd get_throttled
# 0x0 = all good
# 0x50005 = throttled due to undervoltage

# Memory
free -h

# Disk
df -h

# Docker resource usage
docker stats --no-stream
```

### Cooling
Pi4 throttles under sustained load without cooling. At minimum: aluminum heatsinks on SoC and RAM. Better: active fan case (e.g., Argon ONE, Flirc, GeeKPi) or PoE HAT with fan. For always-on server duty, active cooling is strongly recommended.

### Reliability
- Use quality USB-C PSU (5.1V/3A minimum, official recommended)
- UPS recommended (small USB UPS or PoE with UPS switch). NUT (Network UPS Tools) on Pi4 can signal other machines to shut down gracefully on power loss.
- Enable watchdog timer: add `dtparam=watchdog=on` to `/boot/firmware/config.txt`, install `watchdog` package. Auto-reboots on system hang.
- Monitor SD card health with `smartctl` (if SSD) or watch for I/O errors in `dmesg`

---

## 13. Complete Docker Compose Stack (Reference)

Single compose file for the core service stack:

```yaml
version: "3.8"

services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "8080:80/tcp"
    environment:
      TZ: "&#36;{TZ}"
      WEBPASSWORD: "&#36;{PIHOLE_PASSWORD}"
      PIHOLE_DNS_: "127.0.0.1#5335"
    volumes:
      - pihole_data:/etc/pihole
      - pihole_dnsmasq:/etc/dnsmasq.d
    restart: unless-stopped
    cap_add:
      - NET_ADMIN

  wireguard:
    image: linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      PUID: 1000
      PGID: 1000
      TZ: "&#36;{TZ}"
      SERVERURL: "&#36;{WG_SERVER_URL}"
      SERVERPORT: 51820
      PEERS: "phone,laptop,tablet"
      PEERDNS: "192.168.1.X"  # Pi-hole IP
    volumes:
      - wireguard_config:/config
      - /lib/modules:/lib/modules
    ports:
      - "51820:51820/udp"
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

  homeassistant:
    image: ghcr.io/home-assistant/home-assistant:stable
    container_name: homeassistant
    network_mode: host
    privileged: true
    volumes:
      - ha_config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped

  mosquitto:
    image: eclipse-mosquitto:2
    container_name: mosquitto
    ports:
      - "1883:1883"
    volumes:
      - mosquitto_config:/mosquitto/config
      - mosquitto_data:/mosquitto/data
    restart: unless-stopped

  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    ports:
      - "3001:3001"
    volumes:
      - uptime_kuma_data:/app/data
    restart: unless-stopped

  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    ports:
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    restart: unless-stopped

volumes:
  pihole_data:
  pihole_dnsmasq:
  wireguard_config:
  ha_config:
  mosquitto_config:
  mosquitto_data:
  uptime_kuma_data:
  portainer_data:
```

Create `.env` file alongside:
```
TZ=America/New_York
PIHOLE_PASSWORD=changeme
WG_SERVER_URL=your.dynamic-dns.com
```

---

## 14. Network Architecture Diagram

```
[Internet] → [Router/Modem]
                  │
                  ├── Ethernet → [Pi4 Server Head] (192.168.1.X, static)
                  │                  ├── Pi-hole (DNS port 53)
                  │                  ├── Unbound (recursive DNS, port 5335, localhost only)
                  │                  ├── WireGuard VPN (UDP 51820)
                  │                  ├── Home Assistant (port 8123)
                  │                  ├── Mosquitto MQTT (port 1883)
                  │                  ├── Zigbee2MQTT (port 8082) ← USB Zigbee coordinator
                  │                  ├── Uptime Kuma (port 3001)
                  │                  ├── Portainer (port 9443)
                  │                  ├── Grafana (port 3030)
                  │                  ├── Traefik reverse proxy (port 80/443)
                  │                  └── [Touchscreen: kiosk dashboard]
                  │
                  ├── Ethernet/Wi-Fi → [Desktop PCs] (Docker Swarm/K3s workers)
                  ├── Wi-Fi → [Phones, Tablets, Laptops]
                  ├── Wi-Fi/Zigbee → [Smart Home Devices]
                  └── Wi-Fi → [Smart TVs, Consoles, IoT]

Router DNS setting → Pi4 IP (all devices auto-use Pi-hole)
WireGuard clients → Pi4 (remote access + ad blocking away from home)
K3s/Swarm workers → Pi4 control plane (orchestration)
```

---

## 15. Quick-Start Checklist

1. [ ] Flash Raspberry Pi OS Lite 64-bit to SD card (or USB SSD)
2. [ ] Enable SSH, set hostname, set user/password in Imager
3. [ ] Boot Pi4, connect Ethernet, SSH in
4. [ ] Set static IP on Pi4
5. [ ] System update + reboot
6. [ ] Harden: SSH keys, change port, UFW, Fail2Ban
7. [ ] Install Docker + Docker Compose
8. [ ] Deploy Pi-hole (set router DNS to Pi4 IP)
9. [ ] Install Unbound, configure as Pi-hole upstream
10. [ ] Deploy Portainer for container management
11. [ ] Deploy WireGuard (PiVPN) or install Tailscale
12. [ ] Deploy Home Assistant + Mosquitto (if doing smart home)
13. [ ] Deploy Uptime Kuma for monitoring
14. [ ] Set up touchscreen kiosk mode for dashboard
15. [ ] Configure backups (cron + restic or tar)
16. [ ] (Optional) Set up K3s/Docker Swarm for PC cluster
17. [ ] (Optional) Deploy additional services (Vaultwarden, Nextcloud, etc.)

---

## 16. Key Port Reference

| Port | Service | Protocol |
|------|---------|----------|
| 22/2222 | SSH | TCP |
| 53 | Pi-hole DNS | TCP/UDP |
| 80 | HTTP / Traefik / CasaOS | TCP |
| 443 | HTTPS / Traefik | TCP |
| 1883 | Mosquitto MQTT | TCP |
| 3001 | Uptime Kuma | TCP |
| 3030 | Grafana | TCP |
| 5335 | Unbound (localhost) | TCP/UDP |
| 8080 | Pi-hole Admin | TCP |
| 8082 | Zigbee2MQTT | TCP |
| 8123 | Home Assistant | TCP |
| 9000/9443 | Portainer | TCP |
| 51820 | WireGuard VPN | UDP |</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">Download the .zip below to use this document with your AI assistant.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=11" target="_blank" title="">pi4-network-server-context.zip</a> (Size: 11.32 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Pi4 Network Server Head — Context Document</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Complete reference for setting up a Raspberry Pi 4 as an always-on network management appliance with Docker, DNS, VPN, smart home, and monitoring</span></span></div>
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
This context document gives an AI assistant comprehensive knowledge of how to set up and manage a <span style="font-weight: bold;" class="mycode_b">Raspberry Pi 4</span> as a dedicated network server — the always-on appliance that handles DNS, ad blocking, VPN, smart home control, monitoring, and container orchestration for your home network.<br />
<br />
The document covers the full stack from bare metal to running services: hardware selection and storage strategy, OS installation and hardening, Docker deployment, and a complete service catalog with working compose files. Every section includes the actual commands and configuration you need, not just theory.<br />
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">What It Covers</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Hardware baseline</span> — Pi4 specs, storage strategy (SD vs USB SSD and why it matters), touchscreen setup options, and kiosk mode configuration for dashboard display<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Base OS installation</span> — Raspberry Pi OS Lite 64-bit, Imager configuration, first boot sequence, and static IP setup with NetworkManager<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">OS hardening</span> — SSH key auth with port change, UFW firewall rules, Fail2Ban configuration, and additional security measures<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Docker and container management</span> — installation, ARM64 considerations, moving Docker root to SSD, Portainer GUI, and CasaOS alternative<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Pi-hole + Unbound</span> — network-wide ad blocking with recursive DNS resolution for privacy, including Docker and bare-metal install paths, DNSSEC, and network integration methods<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">VPN</span> — WireGuard via PiVPN (self-hosted, port forwarding) and Tailscale (zero-config mesh), including split vs full tunnel and Pi-hole integration for mobile ad blocking<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Home Assistant</span> — Docker container deployment, Zigbee/Z-Wave/Thread integration, MQTT broker setup, Zigbee2MQTT, and touchscreen dashboard<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Network monitoring</span> — Uptime Kuma, Grafana + Prometheus stack, and Gotify push notifications<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">PC cluster orchestration</span> — using Pi4 as Docker Swarm manager or K3s control plane for desktop worker nodes, with Wake-on-LAN<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Reverse proxy</span> — Traefik with auto-discovery and Let's Encrypt, Nginx Proxy Manager alternative, and local DNS names via Pi-hole<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Additional services</span> — Nextcloud, Vaultwarden, Gitea, Jellyfin, Syncthing, Homer, Node-RED, and more with ports and notes<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Maintenance</span> — backup strategies, update procedures, health monitoring commands, cooling requirements, and reliability practices including UPS and watchdog timer<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Complete Docker Compose stack</span> — single reference compose file for the core service stack with .env template<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Network architecture diagram</span> — visual layout of how all services connect<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Quick-start checklist</span> — ordered deployment steps from flash to finished<br />
</li>
</ul>
<br />
<div style="text-align: center;" class="mycode_align">─── ◆ ───</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">How to Use It</span></span><br />
<br />
Paste the contents into a new conversation when you're setting up or managing a Pi4 server, or attach the file directly. The AI will then have enough context to help with everything from initial setup through troubleshooting running services — it knows the correct commands, the common pitfalls (like SD card write wear and undervoltage throttling), and how the services interconnect.<br />
<br />
The document uses generic placeholders throughout (192.168.1.X, youruser, piserver.local) so it works with any network configuration. Swap in your own values as you go.<br />
<br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Document Contents</span></span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code># Pi4 Network Server Head — Complete Reference

&gt; Context document for AI-assisted setup and management of a Raspberry Pi 4 as an always-on network management appliance with touchscreen, wired Ethernet, and Docker-based service stack.

---

## 1. Hardware Baseline

**Board:** Raspberry Pi 4 Model B (2GB minimum, 4GB recommended, 8GB ideal for heavy Docker workloads)
**SoC:** Broadcom BCM2711, quad-core Cortex-A72 @ 1.5–1.8 GHz (arm64/aarch64)
**Network:** Gigabit Ethernet (true dedicated bus, not shared with USB like Pi3), dual-band 802.11ac Wi-Fi (not used — Ethernet only for server role)
**USB:** 2× USB 3.0, 2× USB 2.0 (for Zigbee/Z-Wave dongles, USB SSD, etc.)
**GPIO:** 40-pin header (available for relay control, sensors, HATs)
**Display:** DSI port for official 7" touchscreen (800×480, capacitive, 10-point multitouch)
**Power:** USB-C, 5.1V/3A minimum (use official PSU or quality 5V/3.5A to avoid undervoltage throttling — yellow lightning bolt icon = undervoltage)
**Power draw:** 5–15W depending on load; ~&#36;3–8/month to run 24/7

### Storage Strategy

- **SD card:** Use only for boot (Class 10 / A2 minimum, 32GB+). SD cards suffer from write amplification and wear under Docker's overlay2 I/O. Container startup: 5–15s on SD vs 1–2s on SSD.
- **USB SSD (recommended):** Boot from USB SSD for dramatically better I/O. Use `rpi-eeprom-update` to enable USB boot, then flash OS to SSD via Raspberry Pi Imager. A &#36;20–30 120GB SATA SSD via USB 3.0 adapter transforms performance and longevity.
- **If SD only:** Minimize writes — move Docker data dir, logs, and swap to a USB drive if possible. Reduce swappiness (`vm.swappiness=1`). Use `log2ram` to keep logs in RAM.

### Touchscreen Setup

**Official 7" Pi Touch Display:** DSI ribbon cable connection (labelled "DISPLAY" on Pi4). Adapter board mounts behind LCD; Pi4 mounts to adapter board standoffs. No additional drivers needed on Raspberry Pi OS.

**Cases with integrated touchscreen:**
- Official Pi Foundation case for 7" display (~&#36;15)
- SmartiPi Touch 2 (adjustable angle, VESA mount)
- SunFounder 7" or 10" all-in-one kits (IPS, integrated case + cooling)
- 3D-printed "Raspberry Show" style cases (Echo Show–inspired desk form factor)
- 3.5" SPI screens exist but are low-res (480×320) and refresh-limited — use 7" DSI for any dashboard role

**Kiosk mode for dashboard display:**
Install minimal X server + Chromium in kiosk mode to auto-launch dashboards (Home Assistant, Grafana, Pi-hole admin, Portainer) on boot:
```
sudo apt install xserver-xorg xinit chromium-browser openbox
```
Configure `/etc/xdg/openbox/autostart` to launch Chromium fullscreen pointing at `http://localhost:PORT`. Use `unclutter` to hide the mouse cursor after idle. Disable screen blanking with `xset s off` and `xset -dpms` in xinitrc.

---

## 2. Base OS Installation

**OS:** Raspberry Pi OS Lite 64-bit (Bookworm-based, Debian 12). Lite = no desktop, headless. 64-bit required for modern Docker images (most publish arm64 only now). Verify with `uname -m` → must show `aarch64` not `armv7l`.

**Flashing:** Use Raspberry Pi Imager. Under "OS Customisation" (gear icon):
- Enable SSH (password or key)
- Set hostname (e.g., `piserver`)
- Set username/password (do NOT use default `pi`)
- Configure locale/timezone
- (Optional) Configure Wi-Fi for initial headless access, disable after Ethernet is confirmed

**First boot sequence:**
```bash
# SSH in from another machine
ssh youruser@piserver.local

# Full system update
sudo apt update &amp;&amp; sudo apt full-upgrade -y
sudo reboot

# Set static IP (edit dhcpcd or NetworkManager depending on OS version)
# Bookworm uses NetworkManager by default:
sudo nmcli con mod "Wired connection 1" ipv4.addresses 192.168.1.X/24
sudo nmcli con mod "Wired connection 1" ipv4.gateway 192.168.1.1
sudo nmcli con mod "Wired connection 1" ipv4.dns "127.0.0.1"
sudo nmcli con mod "Wired connection 1" ipv4.method manual
sudo nmcli con up "Wired connection 1"
```

---

## 3. OS Hardening

### SSH Hardening
```bash
# Generate key pair on your workstation (not the Pi)
ssh-keygen -t ed25519

# Copy public key to Pi
ssh-copy-id -i ~/.ssh/id_ed25519.pub youruser@piserver.local

# On the Pi — edit sshd_config
sudo nano /etc/ssh/sshd_config
# Set:
#  PermitRootLogin no
#  PasswordAuthentication no
#  PubkeyAuthentication yes
#  Port 2222  (change from default 22)
sudo systemctl restart sshd
```

### Firewall (UFW)
```bash
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp  # SSH (your custom port)
sudo ufw allow 53/tcp    # DNS (Pi-hole)
sudo ufw allow 53/udp    # DNS (Pi-hole)
sudo ufw allow 80/tcp    # HTTP (dashboards)
sudo ufw allow 443/tcp    # HTTPS
sudo ufw allow 51820/udp  # WireGuard VPN
sudo ufw enable
```

### Fail2Ban
```bash
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# Under [sshd]:
#  enabled = true
#  port = 2222
#  maxretry = 3
#  bantime = 3600
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
```

### Additional Hardening
- Disable unused services: `sudo systemctl disable bluetooth`, `sudo systemctl disable avahi-daemon` (unless using .local mDNS)
- Automatic security updates: `sudo apt install unattended-upgrades -y`
- Remove default `pi` user if it exists: `sudo deluser pi`
- Set `HISTSIZE=1000` and `HISTFILESIZE=2000` in `.bashrc`
- Consider AIDE (file integrity monitoring) for paranoid setups

---

## 4. Docker &amp; Container Management

### Docker Installation
```bash
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker &#36;USER
# Log out and back in for group change
docker --version
docker compose version  # v2 included automatically
```

### Key Docker Concepts for Pi4
- Pi4 runs `arm64` (aarch64). `docker pull` auto-selects correct architecture from multi-arch images.
- LinuxServer.io (LSIO) images are reliable ARM64 builds.
- If SD-card storage: move Docker root to USB SSD:
  ```bash
  sudo systemctl stop docker
  sudo rsync -aP /var/lib/docker/ /mnt/ssd/docker/
  # Edit /etc/docker/daemon.json:
  { "data-root": "/mnt/ssd/docker" }
  sudo systemctl start docker
  ```
- Use `restart: unless-stopped` on all services for auto-recovery after reboot.

### Portainer (Container GUI)
```yaml
# docker-compose.yml
services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    ports:
      - "9443:9443"
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    restart: unless-stopped
volumes:
  portainer_data:
```
Access at `https://piserver.local:9443`. Provides web GUI for managing all Docker containers, images, volumes, networks. Supports Docker Compose stack deployment from the UI.

### CasaOS (Alternative)
CasaOS is a beginner-friendly GUI layer over Docker. One-line install: `curl -fsSL https://get.casaos.io | sudo bash`. Provides an app store UI for deploying containers (Pi-hole, Nextcloud, Jellyfin, etc.) without writing compose files. Good for non-technical household members. Runs on port 80 by default.

---

## 5. DNS &amp; Ad Blocking — Pi-hole + Unbound

### Pi-hole (Network-Wide Ad Blocker)

Pi-hole acts as DNS sinkhole. All devices on network point DNS to Pi4. Ads, trackers, malware domains get null responses — never load. Blocks 35–45% of all DNS requests in a typical home network (40,000–80,000 queries/day blocked for ~12 devices).

**Pi-hole v6 (current as of 2026):** Major rewrite. FTL has embedded web server (no more lighttpd). Single config file `/etc/pihole/pihole.toml`. Docker image switched from Debian to Alpine (113MB → 38MB).

```yaml
# Docker Compose for Pi-hole
services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "8080:80/tcp"
    environment:
      TZ: "America/New_York"
      WEBPASSWORD: "CHANGEME"
    volumes:
      - pihole_data:/etc/pihole
      - pihole_dnsmasq:/etc/dnsmasq.d
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
volumes:
  pihole_data:
  pihole_dnsmasq:
```

**Bare-metal install (alternative):**
```bash
curl -sSL https://install.pi-hole.net | bash
# Follow interactive installer
# Set password: pihole -a -p YourPassword
```

**Network integration — two methods:**
1. **Router DNS method:** Set router's DHCP DNS server to Pi4's static IP. All devices auto-use Pi-hole. No per-device config.
2. **Pi-hole as DHCP server:** Disable DHCP on router, enable in Pi-hole admin. Pi-hole assigns IPs and DNS. Better hostname resolution but more complex.

**Blocklists:** Default Steven Black unified list is good baseline. Add community lists from firebog.net for expanded coverage. Admin dashboard: `http://piserver.local:8080/admin`.

### Unbound (Recursive DNS Resolver)

Without Unbound, Pi-hole forwards queries to upstream DNS (Cloudflare, Google, etc.) — those providers see every domain you resolve. Unbound resolves recursively by walking the DNS hierarchy from root servers. No third-party sees your full query history.

**Architecture:** Pi-hole listens on port 53 → filters ads → forwards allowed queries to Unbound on port 5335 → Unbound resolves recursively against authoritative nameservers.

```bash
sudo apt install unbound -y

# Create Pi-hole-optimized config
sudo nano /etc/unbound/unbound.conf.d/pi-hole.conf
```

```yaml
server:
    verbosity: 0
    interface: 127.0.0.1
    port: 5335
    do-ip4: yes
    do-udp: yes
    do-tcp: yes
    do-ip6: no
    prefer-ip6: no
    harden-glue: yes
    harden-dnssec-stripped: yes
    use-caps-for-id: no
    edns-buffer-size: 1232
    prefetch: yes
    num-threads: 1
    so-rcvbuf: 1m
    private-address: 192.168.0.0/16
    private-address: 172.16.0.0/12
    private-address: 10.0.0.0/8
```

```bash
sudo systemctl enable unbound
sudo systemctl start unbound
# Test: dig pi-hole.net @127.0.0.1 -p 5335
```

In Pi-hole admin → Settings → DNS: set Custom Upstream DNS to `127.0.0.1#5335`. Remove all other upstream servers.

**Trade-off:** First lookup for any domain is slower (Unbound must walk hierarchy). Subsequent queries are cached locally. For most home networks the difference is imperceptible.

### DNSSEC
Unbound validates DNSSEC by default. Protects against DNS cache poisoning and response spoofing. Does NOT encrypt queries in transit (use DoT/DoH at the Unbound level for that, but it's optional and adds complexity).

---

## 6. VPN — WireGuard / Tailscale

### WireGuard via PiVPN (Self-Hosted VPN)

WireGuard: modern VPN protocol, ~4,000 lines of code (vs OpenVPN's 70,000+), faster, simpler, ChaCha20 encryption. Pi4 handles 20–50 simultaneous connections comfortably.

```bash
curl -L https://install.pivpn.io | bash
# Select WireGuard (not OpenVPN)
# Choose your Ethernet interface
# Set VPN port (default 51820/UDP)
# Choose DNS provider (select Pi-hole if running)
# Use your public IP or dynamic DNS hostname
```

**Port forwarding required:** Forward UDP 51820 on your router to Pi4's static IP.

**Client management:**
```bash
pivpn add      # Create client profile (generates .conf + QR code)
pivpn list      # Show all clients
pivpn remove    # Remove a client
pivpn qr        # Show QR code for mobile import
```

**Split vs Full tunnel:**
- Split tunnel: only home network traffic goes through VPN (access LAN remotely)
- Full tunnel: ALL traffic routes through VPN (secure public Wi-Fi)
- Create both profiles for different use cases

**Pi-hole + WireGuard combo:** Route VPN DNS through Pi-hole. Ad blocking follows you everywhere — mobile, laptop on public Wi-Fi, travel.

### Tailscale (Zero-Config Mesh VPN)

Alternative to self-hosted WireGuard. No port forwarding needed. Built on WireGuard protocol but with automatic NAT traversal, key management, and mesh networking.

```bash
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
# Authenticate via URL provided
```

**Key features:**
- Mesh network: devices connect directly peer-to-peer
- Subnet router: Pi4 can expose entire LAN to your tailnet (`sudo tailscale up --advertise-routes=192.168.1.0/24`)
- Exit node: route all traffic through Pi4 when remote
- MagicDNS: access devices by hostname
- ACLs: control which devices can see what
- Free tier: up to 100 devices, 3 users

**Pi4 as subnet router:** All devices on tailnet can access your home LAN through the Pi4 — NAS, printers, other PCs — without installing Tailscale on each.

**Disable key expiry** for always-on devices (Pi4, NAS): Tailscale admin console → Machines → select Pi → Disable key expiry.

---

## 7. Smart Home — Home Assistant

### Overview

Home Assistant (HA) is open-source, privacy-first home automation. Emphasis on LOCAL control — devices controlled directly over LAN without cloud dependency. Runs on Pi4 via HAOS image or Docker container. 2,000+ integrations.

### Installation Methods

**Method 1: Home Assistant OS (HAOS) — dedicated Pi4**
Flash the HAOS image directly. Pi4 becomes a dedicated HA appliance. Includes Supervisor for add-on management. Best integration, simplest updates, but Pi4 can't easily run other services.

**Method 2: Docker container — shared Pi4 (recommended for this use case)**
```yaml
services:
  homeassistant:
    image: ghcr.io/home-assistant/home-assistant:stable
    container_name: homeassistant
    network_mode: host
    privileged: true
    volumes:
      - ha_config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
volumes:
  ha_config:
```
Access at `http://piserver.local:8123`. Loses Supervisor/add-on system but runs alongside Pi-hole, WireGuard, monitoring, etc.

### Offline / Local Control

HA was built for local-first operation. Works without internet if devices use local protocols:
- **Zigbee:** Requires USB coordinator dongle (&#36;15–25, e.g., SONOFF Zigbee 3.0, Conbee II). Use ZHA integration (built-in) or Zigbee2MQTT. Fully local. Wide device support (lights, sensors, switches, locks).
- **Z-Wave:** Requires USB Z-Wave stick (e.g., Aeotec Z-Stick Gen5+). Use Z-Wave JS integration. Fully local. Strong for locks, thermostats, switches.
- **Wi-Fi (local):** Devices running Tasmota, ESPHome firmware communicate over local network only. No cloud.
- **Thread/Matter:** Newer protocol standard. Local-first by design. Pi4 can act as Thread border router with appropriate hardware.

**MQTT broker (Mosquitto):** Central message bus for IoT. Lightweight publish/subscribe protocol. All Zigbee2MQTT and many other integrations route through it.
```bash
sudo apt install mosquitto mosquitto-clients -y
sudo systemctl enable mosquitto
```
Or via Docker:
```yaml
services:
  mosquitto:
    image: eclipse-mosquitto:2
    container_name: mosquitto
    ports:
      - "1883:1883"
    volumes:
      - mosquitto_config:/mosquitto/config
      - mosquitto_data:/mosquitto/data
    restart: unless-stopped
```

### Zigbee2MQTT (Alternative to ZHA)
Bridges Zigbee coordinator to MQTT. More device support than ZHA, runs outside HA (survives HA restarts), web dashboard for device management.
```yaml
services:
  zigbee2mqtt:
    image: koenkk/zigbee2mqtt
    container_name: zigbee2mqtt
    volumes:
      - z2m_data:/app/data
      - /run/udev:/run/udev:ro
    ports:
      - "8082:8080"
    environment:
      TZ: "America/New_York"
    devices:
      - /dev/ttyUSB0:/dev/ttyUSB0
    restart: unless-stopped
```

### Touchscreen Integration
Run Chromium in kiosk mode (see Section 1) pointing at `http://localhost:8123`. Create a dedicated HA user with a custom dashboard optimized for touch (large buttons, status cards). Auto-login via HA trusted networks or long-lived access token.

---

## 8. Network Monitoring

### Uptime Kuma (Service Monitor)
Lightweight, open-source. Monitors HTTP, TCP, DNS, ICMP ping, Docker containers. Real-time dashboard, historical stats (24h/7d/30d). 90+ notification channels (Telegram, Discord, email, Gotify). Pi4 handles 50–100+ monitors easily. ~76,000 GitHub stars, current version 2.1.3 (Feb 2026). Integrates with Home Assistant as of HA 2025.8 (binary sensors per monitor).

```yaml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    ports:
      - "3001:3001"
    volumes:
      - uptime_kuma_data:/app/data
    restart: unless-stopped
```

### Grafana + Prometheus (Advanced Monitoring)
Full metrics stack. Prometheus scrapes time-series data; Grafana visualizes. Pre-built Raspberry Pi dashboards (CPU, memory, disk I/O, temperature). Can ingest Uptime Kuma metrics via Prometheus exporter.

```yaml
services:
  prometheus:
    image: prom/prometheus:latest
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    restart: unless-stopped

  grafana:
    image: grafana/grafana:latest
    ports:
      - "3030:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    restart: unless-stopped
```

### Gotify (Push Notifications)
Self-hosted notification server. Receives alerts from Uptime Kuma, Grafana, custom scripts. Android app available. Replaces dependency on Pushover/Ntfy cloud services.

### Recommended Monitoring Stack
"Holy trinity" for home labs: Uptime Kuma (service uptime) + Beszel or Pulse (host metrics) + Gotify (alerting). Grafana/Prometheus for deep-dive dashboards if desired.

---

## 9. PC Cluster / Network Orchestration

### Using Pi4 as Control Plane for Desktop PCs

The Pi4 can serve as the management/control plane node while desktop PCs (x86_64) serve as worker nodes. Two main approaches:

### Approach A: Docker Swarm (Simpler)
- Pi4 runs as Swarm manager
- Desktop PCs join as worker nodes
- Manages containerized services across the cluster
- Built-in load balancing and scaling
- Good for: distributed web apps, batch processing, CI/CD runners
```bash
# On Pi4 (manager):
docker swarm init --advertise-addr 192.168.1.X
# Shows join token

# On each desktop PC (worker):
docker swarm join --token SWMTKN-xxxxx 192.168.1.X:2377
```
**Mixed architecture caveat:** Images must be multi-arch (arm64 + amd64). Pi4 manager runs arm64; x86 workers run amd64. Use multi-arch images or constrain services to specific node architectures via placement constraints.

### Approach B: K3s Lightweight Kubernetes (More Powerful)
K3s: single binary (~70MB), includes API server, scheduler, controller manager, kubelet, containerd, Flannel CNI, Traefik ingress, CoreDNS. Supports mixed arm64/amd64 clusters natively.

```bash
# On Pi4 (control plane):
curl -sfL https://get.k3s.io | sh -
# Get join token:
cat /var/lib/rancher/k3s/server/node-token

# On each desktop PC (worker):
curl -sfL https://get.k3s.io | K3S_URL=https://piserver:6443 K3S_TOKEN=XXX sh -
```

**Pi4 resource budget for K3s control plane:**
- K3s server: ~500MB RAM
- System: ~300MB RAM
- Available for workloads: ~2.7GB (on 4GB Pi4)
- OS buffer/cache: ~500MB

**Use cases for Pi4-managed PC cluster:**
- Distributed build/CI runners (GitHub Actions self-hosted, Drone)
- Distributed rendering (Blender render farm)
- Game server hosting across machines
- Distributed storage (GlusterFS across nodes)
- Learning enterprise orchestration patterns

### Wake-on-LAN (WoL)
Pi4 can wake sleeping/powered-off PCs on demand:
```bash
sudo apt install wakeonlan -y
wakeonlan AA:BB:CC:DD:EE:FF  # MAC address of target PC
```
Combine with Home Assistant automations or cron jobs. Useful for spinning up worker nodes only when needed (power savings). Requires WoL enabled in each PC's BIOS/UEFI and network adapter settings.

---

## 10. Reverse Proxy

### Traefik (Recommended for Docker)
Auto-discovers Docker containers, auto-configures routing, auto-manages Let's Encrypt TLS certificates. Label-based configuration — no manual config file updates per service.

```yaml
services:
  traefik:
    image: traefik:v3.0
    command:
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--entrypoints.web.address=:80"
    ports:
      - "80:80"
      - "8180:8080"  # Traefik dashboard
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: unless-stopped
```

Other services add Traefik labels:
```yaml
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.pihole.rule=Host(`pihole.local`)"
```

### Nginx Proxy Manager (Alternative)
Web GUI for reverse proxy config. Simpler for those uncomfortable with label/file-based config. Supports Let's Encrypt, access lists, custom locations.

### Local DNS Names
Use Pi-hole's "Local DNS → DNS Records" to create custom hostnames:
- `pihole.home` → 192.168.1.X
- `grafana.home` → 192.168.1.X
- `ha.home` → 192.168.1.X

Combined with reverse proxy, access services by name instead of IP:port.

---

## 11. Additional Services Worth Running

| Service | Purpose | Port | Notes |
|---|---|---|---|
| **Nextcloud** | Self-hosted cloud storage/sync | 8443 | Pi4 handles light use; heavy use benefits from SSD |
| **Vaultwarden** | Bitwarden-compatible password manager | 8081 | Very lightweight, perfect for Pi4 |
| **Nginx/Caddy** | Static site hosting | 80/443 | Host personal website directly |
| **Gitea** | Self-hosted Git | 3000 | Lightweight GitHub alternative |
| **Jellyfin** | Media server | 8096 | Pi4 can direct-play most formats; no hardware transcoding on Pi4 GPU |
| **Syncthing** | File sync between devices | 8384 | Replaces Dropbox/Google Drive |
| **Homer/Homarr** | Dashboard/homepage | 8083 | Landing page linking all services |
| **Node-RED** | Visual automation flows | 1880 | Bridges HA, MQTT, APIs, scripts |
| **n8n** | Workflow automation | 5678 | Self-hosted Zapier alternative |
| **Ntfy/Gotify** | Push notifications | 8085 | Self-hosted push service |
| **Speedtest Tracker** | ISP speed monitoring | 8765 | Tracks download/upload/latency over time |

---

## 12. Maintenance &amp; Best Practices

### Backups
```bash
# Backup all Docker volumes
sudo tar czf /mnt/backup/docker-volumes-&#36;(date +%F).tar.gz /var/lib/docker/volumes/

# Or use restic for incremental encrypted backups
sudo apt install restic -y
restic init --repo /mnt/backup/restic-repo
restic backup /var/lib/docker/volumes/ /etc/pihole/ /etc/unbound/
```

### Updates
```bash
# System
sudo apt update &amp;&amp; sudo apt upgrade -y

# Docker images
docker compose pull    # Pull latest images
docker compose up -d  # Recreate with new images
docker image prune -f  # Clean old images

# Pi-hole
pihole -up  # If bare-metal install

# Automate with cron:
# 0 3 * * 0 docker compose -f /home/youruser/docker-compose.yml pull &amp;&amp; docker compose -f /home/youruser/docker-compose.yml up -d
```

### Monitoring Pi Health
```bash
# CPU temperature (throttles at 80°C, shuts down at 85°C)
vcgencmd measure_temp

# Voltage/throttling status
vcgencmd get_throttled
# 0x0 = all good
# 0x50005 = throttled due to undervoltage

# Memory
free -h

# Disk
df -h

# Docker resource usage
docker stats --no-stream
```

### Cooling
Pi4 throttles under sustained load without cooling. At minimum: aluminum heatsinks on SoC and RAM. Better: active fan case (e.g., Argon ONE, Flirc, GeeKPi) or PoE HAT with fan. For always-on server duty, active cooling is strongly recommended.

### Reliability
- Use quality USB-C PSU (5.1V/3A minimum, official recommended)
- UPS recommended (small USB UPS or PoE with UPS switch). NUT (Network UPS Tools) on Pi4 can signal other machines to shut down gracefully on power loss.
- Enable watchdog timer: add `dtparam=watchdog=on` to `/boot/firmware/config.txt`, install `watchdog` package. Auto-reboots on system hang.
- Monitor SD card health with `smartctl` (if SSD) or watch for I/O errors in `dmesg`

---

## 13. Complete Docker Compose Stack (Reference)

Single compose file for the core service stack:

```yaml
version: "3.8"

services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "8080:80/tcp"
    environment:
      TZ: "&#36;{TZ}"
      WEBPASSWORD: "&#36;{PIHOLE_PASSWORD}"
      PIHOLE_DNS_: "127.0.0.1#5335"
    volumes:
      - pihole_data:/etc/pihole
      - pihole_dnsmasq:/etc/dnsmasq.d
    restart: unless-stopped
    cap_add:
      - NET_ADMIN

  wireguard:
    image: linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      PUID: 1000
      PGID: 1000
      TZ: "&#36;{TZ}"
      SERVERURL: "&#36;{WG_SERVER_URL}"
      SERVERPORT: 51820
      PEERS: "phone,laptop,tablet"
      PEERDNS: "192.168.1.X"  # Pi-hole IP
    volumes:
      - wireguard_config:/config
      - /lib/modules:/lib/modules
    ports:
      - "51820:51820/udp"
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

  homeassistant:
    image: ghcr.io/home-assistant/home-assistant:stable
    container_name: homeassistant
    network_mode: host
    privileged: true
    volumes:
      - ha_config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped

  mosquitto:
    image: eclipse-mosquitto:2
    container_name: mosquitto
    ports:
      - "1883:1883"
    volumes:
      - mosquitto_config:/mosquitto/config
      - mosquitto_data:/mosquitto/data
    restart: unless-stopped

  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    ports:
      - "3001:3001"
    volumes:
      - uptime_kuma_data:/app/data
    restart: unless-stopped

  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    ports:
      - "9443:9443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    restart: unless-stopped

volumes:
  pihole_data:
  pihole_dnsmasq:
  wireguard_config:
  ha_config:
  mosquitto_config:
  mosquitto_data:
  uptime_kuma_data:
  portainer_data:
```

Create `.env` file alongside:
```
TZ=America/New_York
PIHOLE_PASSWORD=changeme
WG_SERVER_URL=your.dynamic-dns.com
```

---

## 14. Network Architecture Diagram

```
[Internet] → [Router/Modem]
                  │
                  ├── Ethernet → [Pi4 Server Head] (192.168.1.X, static)
                  │                  ├── Pi-hole (DNS port 53)
                  │                  ├── Unbound (recursive DNS, port 5335, localhost only)
                  │                  ├── WireGuard VPN (UDP 51820)
                  │                  ├── Home Assistant (port 8123)
                  │                  ├── Mosquitto MQTT (port 1883)
                  │                  ├── Zigbee2MQTT (port 8082) ← USB Zigbee coordinator
                  │                  ├── Uptime Kuma (port 3001)
                  │                  ├── Portainer (port 9443)
                  │                  ├── Grafana (port 3030)
                  │                  ├── Traefik reverse proxy (port 80/443)
                  │                  └── [Touchscreen: kiosk dashboard]
                  │
                  ├── Ethernet/Wi-Fi → [Desktop PCs] (Docker Swarm/K3s workers)
                  ├── Wi-Fi → [Phones, Tablets, Laptops]
                  ├── Wi-Fi/Zigbee → [Smart Home Devices]
                  └── Wi-Fi → [Smart TVs, Consoles, IoT]

Router DNS setting → Pi4 IP (all devices auto-use Pi-hole)
WireGuard clients → Pi4 (remote access + ad blocking away from home)
K3s/Swarm workers → Pi4 control plane (orchestration)
```

---

## 15. Quick-Start Checklist

1. [ ] Flash Raspberry Pi OS Lite 64-bit to SD card (or USB SSD)
2. [ ] Enable SSH, set hostname, set user/password in Imager
3. [ ] Boot Pi4, connect Ethernet, SSH in
4. [ ] Set static IP on Pi4
5. [ ] System update + reboot
6. [ ] Harden: SSH keys, change port, UFW, Fail2Ban
7. [ ] Install Docker + Docker Compose
8. [ ] Deploy Pi-hole (set router DNS to Pi4 IP)
9. [ ] Install Unbound, configure as Pi-hole upstream
10. [ ] Deploy Portainer for container management
11. [ ] Deploy WireGuard (PiVPN) or install Tailscale
12. [ ] Deploy Home Assistant + Mosquitto (if doing smart home)
13. [ ] Deploy Uptime Kuma for monitoring
14. [ ] Set up touchscreen kiosk mode for dashboard
15. [ ] Configure backups (cron + restic or tar)
16. [ ] (Optional) Set up K3s/Docker Swarm for PC cluster
17. [ ] (Optional) Deploy additional services (Vaultwarden, Nextcloud, etc.)

---

## 16. Key Port Reference

| Port | Service | Protocol |
|------|---------|----------|
| 22/2222 | SSH | TCP |
| 53 | Pi-hole DNS | TCP/UDP |
| 80 | HTTP / Traefik / CasaOS | TCP |
| 443 | HTTPS / Traefik | TCP |
| 1883 | Mosquitto MQTT | TCP |
| 3001 | Uptime Kuma | TCP |
| 3030 | Grafana | TCP |
| 5335 | Unbound (localhost) | TCP/UDP |
| 8080 | Pi-hole Admin | TCP |
| 8082 | Zigbee2MQTT | TCP |
| 8123 | Home Assistant | TCP |
| 9000/9443 | Portainer | TCP |
| 51820 | WireGuard VPN | UDP |</code></div></div><br />
<div style="text-align: center;" class="mycode_align">━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</div>
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">Download the .zip below to use this document with your AI assistant.</span></div><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://forum.photonamus.com/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=11" target="_blank" title="">pi4-network-server-context.zip</a> (Size: 11.32 KB / Downloads: 0)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
	</channel>
</rss>