Skip to content

1.6

Choose a tag to compare

@Matteo842 Matteo842 released this 29 Jul 12:33

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 the ModAssets schema, enabling asset packs to be declared cleanly in mod.json for auto-registration.
  • Non-Destructive Disc Overlay System: Replace or add disc files transparently without modifying original .bin/.cue files. 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 VramTransfers and 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 a GameConfig.AssetHotWatch toggle.
  • 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 tileTap logic 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.

πŸ› οΈ Developer Tooling & Modding API

  • ModTools CLI (tools/CrashBandicoot.ModTools): New CLI utility to scaffold mod projects, export disc files from a raw .bin file (export-disc), and package captured textures.
  • Runtime Texture Capture: Built-in VRAM texture capturing (captures/textures/*.png + metadata) via PNG encoding (via StbImageWriteSharp).
  • Documentation & Sample Mods:
    • Complete rewrite of MODDING.md detailing 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, and asset-pack-stub.

βš™οΈ 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.