Back to Provenance

2649

.changelog/2649.md

3.3.11.3 KB
Original Source

Added

  • PaletteProviding protocol — New PVCoreBridge protocol (PaletteProviding) exposing availablePalettes: [CorePalette], currentPaletteID, and selectPalette(id:) as a structured, type-safe replacement for string-matched CoreActions palette cycling.
  • CorePalette modelCorePalette struct with id, displayName, and up to 4 preview PaletteColor values (stored as normalised RGB floats) for swatch rendering.
  • GBPalette colour data — All 15 Game Boy DMG palettes now carry actual 4-colour preview data and human-readable display names.
  • Gambatte PaletteProviding adoptionPVGBEmulatorCore conforms to PaletteProviding; DMG games expose all 15 palettes, GBC games return an empty list.
  • PalettePickerView — New SwiftUI sheet showing a grid of colour swatches; current palette highlighted with a neon selection ring; applies palette live on tap.
  • Tile-menu palette tilePauseTileMenuView shows a paintpalette.fill tile (purple) for cores conforming to PaletteProviding; badge shows the current palette name; the old "Change Palette" cycling action is suppressed when the richer picker is available.
  • RetroMenuView palette button — Classic pause menu now shows a "PALETTE: <name>" button in the CORE tab for PaletteProviding cores, opening the same PalettePickerView sheet.