Skip to content

1.3.0

Choose a tag to compare

@github-actions github-actions released this 17 May 15:21

Added

  • --v-bank-size for extract (CLI and GUI): choose the size of each v1, v2, … file when splitting V ROM (default 2 MB; presets 512 KB–16 MB in the GUI, any byte value on the CLI).
  • C ROM chips C9–C16 when packing MAME sets (extended / hack ROM layouts beyond the standard eight C chips).
  • Pack from unzipped folders: reads ROM files in the selected directory and one level of subfolders (typical unzip layout).
  • GUI pack preflight: warns when V or C ROM numbering has gaps (e.g. v1 + v3 without v2) before you pack.
  • Extract overwrite warnings: existing output files are replaced with a visible warning (CLI → stderr, GUI → log).

Changed

  • C chip size on extract: default is now a fixed 2 MB per chip (CLI 0, GUI “2 MB (default)”). The old auto (C_total ÷ 2) mode was removed — it could silently produce wrong c*.bin files for multi-bank sets. Use MAME neogeo.xml size attributes or the GUI/CLI presets (e.g. 4 MB for Neo Turf Masters).
  • V/C ROM gaps when packing now abort with an error instead of continuing with a broken layout.
  • P-ROM auto-swap: when detection is inconclusive, pack logs [WARN] and suggests neoconv detect-swap or --swap-p yes / no.
  • CLI errors: pack, extract, and other commands report Error: … and exit code 1 instead of a Python traceback for typical failures.
  • Core package layout: neoconv.core is split into focused modules; several semi-public helpers were renamed (no leading underscore).

Fixed

  • Atomic writes for pack output (.neo) and extract-to-ZIP (same pattern as edit); reduces risk of truncated files if a run is interrupted.
  • GUI worker thread safety (Tk updates via a main-thread queue).
  • Synthetic S-ROM filename heuristics aligned with more MAME set patterns.
  • .neo metadata edits (edit) rewrite the header without re-parsing ROM payloads.
  • V1/V2 header read/write behaviour documented; non-standard split V sizes trigger a warning on load.
  • Various pack/extract edge cases (duplicate ROM roles, sorted directory iteration, P-ROM swap immutability).

Documentation

  • README: C9–C16, C/V chip and bank size tables, neogeo.xml lookup hints, pack gap behaviour, detect-swap vs GUI Pack auto-detect, --out-dir vs --out, atomic output, extract overwrite behaviour.
  • Drag & drop (tkinterdnd2) and release workflow notes updated.

Tests

  • Test count 123 (up from 114 at 1.2.0).