Version 1.6 Changelog
Release Summary: Version 1.6 is a massive update centered around a brand-new Modding Architecture, runtime asset hot-reloading, developer CLI tooling, and rendering polish for widescreen and texture filtering.
🧩 Modding Engine & Infrastructure
📁 Mod Categories & Launcher UI Overhaul
- Categorized Mods Sheet: Replaced the legacy Mods card with a full-window, scrollable sheet grouping mods by category (Gameplay, Assets, Installed, Samples & stubs).
- Collapsible Sections & UI State: Added collapsible headers, persistent checkbox selection states, and suppressed horizontal scrolling for better layout stability.
- Launcher Mod Manager: Added a dedicated MODS tab in the launcher to seamlessly discover, enable, or disable installed mods from the
mods/directory.
📦 Declarative Assets & Disc Overlays
- Declarative Manifests (
mod.json): Introduced theModAssetsschema, enabling asset packs to be declared cleanly inmod.jsonfor auto-registration. - Non-Destructive Disc Overlay System: Replace or add disc files transparently without modifying original
.bin/.cuefiles. Features automatic virtual LBA reassignment for oversized replacements and allows asset-only mods without compiling C# code. - PNG → BGR555 Texture Replacements: Real-time PNG decoding with nearest-neighbor scaling for runtime texture replacement, hooked directly into
VramTransfersand HLE GPU buffering. - Asset Catalogs: Added fingerprinting (SHA256) and JSON-backed catalog systems (
Levels,Textures,Sounds) with support for loose file overrides.
🔄 Runtime Hot-Reloading & New Mod Events
- Asset Hot-Reload: Introduced runtime asset hot-reloading (
FileSystemWatcher) for texture replacements and disc overlays without restarting the executable. Includes new UI controls and aGameConfig.AssetHotWatchtoggle. - VRAM Transfer Hooks (
VramTransferEvent): Enables mods to observe and mutate GPU image transfers (LoadImage,StoreImage,MoveImage) before committing to VRAM or the HLE backend. - SPU DMA Audio Hooks (
SpuDmaEvent): Allows mods to intercept and perform in-place mutation on main-RAM to SPU RAM audio uploads.
🎨 Graphics & Rendering Improvements
- Gameplay-Only Widescreen: Widescreen aspect ratio expansion is now locked exclusively to gameplay. Title screens, world maps, and cutscenes correctly retain their native 4:3 aspect ratio.
- Texture Filtering Gating & Artifact Fixes:
- Added
tileTaplogic in GLSL to bound bilinear filtering inside 16x16 UV cells, preventing green grid lines and atlas bleed artifacts. - Texture filtering is automatically suppressed in UI and cutscenes to preserve visual integrity while keeping dedither and dejitter active.
- Added
🛠️ Developer Tooling & Modding API
- ModTools CLI (
tools/CrashBandicoot.ModTools): New CLI utility to scaffold mod projects, export disc files from a raw.binfile (export-disc), and package captured textures. - Runtime Texture Capture: Built-in VRAM texture capturing (
captures/textures/*.png+ metadata) via PNG encoding (viaStbImageWriteSharp). - Documentation & Sample Mods:
- Complete rewrite of
MODDING.mddetailing the new event pipeline, catalog hooks, and asset layout. - Added comprehensive example stubs:
vram-transfer-stub,spu-dma-stub,disc-overlay-stub,catalog-stub,texture-replace-stub, andasset-pack-stub.
- Complete rewrite of
⚙️ UI, UX & Text Polish
- Widescreen Clarity: Updated UI descriptions to clarify that widescreen logic stretches/adjusts 4:3 frames (specifically Crash 1 pre-rendered backgrounds) rather than rendering extra hidden 3D geometry.
- Standardized Tooltips: Cleaned up and standardized help strings across settings for dither, dejitter, integer scaling, VRAM warnings, and restart notifications.