Skip to content

v0.1.12

@monteslu monteslu tagged this 01 Jun 19:22
From a remote user's Genesis block-tile/palette-matching session. All 5 items
built; verified live end-to-end.

- getTile/tilesAscii/tileFingerprints: Genesis VRAM is stored by gpgx as 16-bit
  words in host-LE order, so raw video_ram bytes are word-byte-swapped vs the
  VDP-logical layout — getTile was returning scrambled pixels (cost the user
  10+ turns to diagnose). Now un-swapped by default for the live emulator
  (logicalPixels:true; pass false for raw), with `byteSwapCorrected` in the
  response. readMemory(video_ram) on Genesis gained a note documenting the swap.

- m68k symbol/map lookup: m68k-elf-ld now emits a linker map (-Map), surfaced
  through buildForPlatform → buildSourceWithDebug({platform:"genesis"}) as the
  .map text. Lets you find where a RAM var like `well` landed and writeMemory
  to it. SGDK links work-RAM through its 0xE0FF0000 mirror; the low 16 bits are
  the system_ram offset. VERIFIED: built a ROM, read `well @ 0xe0ff0048` from
  the map, wrote to system_ram offset 0x48, read it back byte-exact.

- inspectPatternTiles `scale`: integer nearest-neighbor upscale so a small tile
  strip is actually readable inline (the default 8×8 tiles were unreadable).

- previewTileArt `fromEmulator:true`: read tiles straight from live VRAM (no
  readMemory→base64 round-trip), Genesis byte-swap handled; palette defaults to
  live when tiles come from the emulator. Also fixed a latent bug where
  paletteFromEmulator's getHostOrNull(sessionKey) had sessionKey undefined —
  now threaded through previewTileArtCore.

- Genesis inspectPalette: returns a `subPalettes` grouping (PAL0=0-15 … PAL3=
  48-63) + a note, so you don't guess which flat CRAM index your PALn is.

Suite 387 → 390, all green.
Assets 2
Loading