Skip to content

Releases: Decompollaborate/mapfile_parser

2.13.2

Choose a tag to compare

@AngheloAlf AngheloAlf released this 22 Aug 02:58

[2.13.2] - 2026-08-21

Fixed

  • Avoid emitting zero-sized symbols in objdiff reports.

2.13.1

Choose a tag to compare

@AngheloAlf AngheloAlf released this 18 Aug 12:18

[2.13.1] - 2026-08-18

Fixed

  • Fix first_diff and some lookup functions grabbing the first existing
    .NON_MATCHING marker instead of the actual symbol.

2.13.0

Choose a tag to compare

@AngheloAlf AngheloAlf released this 28 Jun 19:29

[2.13.0] - 2026-06-28

Added

  • findPossibleSymbolsByVram, findPossibleSymbolsByVrom, and
    findPossibleSymbolsByName for MapFile and findPossibleSymbolByVram,
    findPossibleSymbolByVrom, and findPossibleSymbolsByName for Segment.
    • Allow iterating over the mapfile looking for multiple symbols that could
      match either the vram, vrom or name given instead of stopping at the first
      one that matches the criteria.
  • Symbol::isNonmatching: If true, the current symbol is a .NON_MATCHING
    marker symbol.
  • Section::containsVram, Section::containsVrom, Segment::containsVram,
    Segment::containsVrom.

Changed

  • sym_info now iterates over every possible vram/vrom address for every
    segment instead of only printing the first found one.

2.12.2

Choose a tag to compare

@AngheloAlf AngheloAlf released this 30 May 13:00

[2.12.2] - 2026-05-30

Fixed

  • Fix sometimes not properly filtering jumptable labels.
    • They were being filtered only if they matched the pattern .LXXXXXXXX,
      meaning mapfile_parser was failing to filter labels like .LXXXXXXXX_YYYYYY
      used in many games with overlapping addresses.

2.12.1

Choose a tag to compare

@AngheloAlf AngheloAlf released this 17 Jan 14:02
f5791b3

[2.12.1] - 2026-01-17

Added

  • Add support for Python 3.8 again.
    • Figured out how to have CI to test compatibility with Python 3.8 again.
  • Wheels for free threaded Python (3.14t).
    • Hopefully nothing will break when running without the GIL.
  • Wheels are now tested to be installable in CI.
    • Specifically useful for abi3 wheels, so we can ensure the wheel is
      installable in the oldest Python version we support for each OS/arch combo.
  • Integrate uv in CI for Python and dependencies management.

Changed

  • Wheels now use the stable abi3 abi instead of building a single wheel for
    each version for GIL Python.
  • Python tests in CI are now run against all the Python versions we support
    instead of relying on whatever Python version the Github runner has.
  • decomp-settings 0.0.10 is now required.

2.12.0

Choose a tag to compare

@AngheloAlf AngheloAlf released this 11 Oct 16:59

[2.12.0] - 2025-10-11

Added

  • Install a mapfile_parser program script when installing the library through
    pip.
    • This provides the same functionality as running the library module with
      python3 -m mapfile_parser.
    • This should allow better integration with tools like uvx or pipx.
  • Prebuilt binaries for Python 3.14.

Changed

  • Update the pyo3 dependency version.

2.11.0

Choose a tag to compare

@AngheloAlf AngheloAlf released this 08 Sep 21:34
01b5596

[2.11.0] - 2025-09-08

Added

  • Progress reports using the objdiff's report format can now emit progress for
    data symbols!
    • Data progress reporting requires .NON_MATCHING markers for every data
      symbol that is not considered matched yet (i.e. from an automatic disassembly).
    • It is turned off by default in objdiff_report. To turn it on set
      report_data: True on your decomp.yaml file.

Changed

  • Mapfile parsing will now try to infer static symbols by analyzing mismatches
    on section address and size vs the addresses and sizes of symbols within that
    section.
    • For every inferred static sym a corresponding symbol will be inserted into
      the section. Its name will be prefixed with $_static_symbol_.
    • It is possible to check if a symbol is an inferred static in the API by
      checking Symbol::inferred_static.
  • The --emit-categories flag of objdiff_report not sets
    check_asm_paths: False and report_data: True by default.

Fixed

  • Fix the vram address plf-resolved mapfiles when the sections of those plfs
    were not relative to zero.

2.10.0

Choose a tag to compare

@AngheloAlf AngheloAlf released this 02 Sep 03:39
22a03f2

[2.10.0] - 2025-09-01

Added

  • Support for partially linked objects (a.k.a. plf).
    • This is done by calling a function with a user provided callback that
      converts a given object path into the corresponding mapfile for that plf.
    • Rust: MapFile::resolve_partially_linked_files().
    • Python: MapFile::resolvePartiallyLinkedFiles().
  • All the CLI utilities include basic support for plfs.
    • Pass the flag -x .extension or --plf-ext .extension to specify the
      extension of the partially linked objects files that should be replaced with
      a .map extension.
    • The frontends API allow to further customize this behavior by passing a
      callback like the one used by MapFile::resolvePartiallyLinkedFiles.

2.9.4

Choose a tag to compare

@AngheloAlf AngheloAlf released this 02 Jun 17:03
afa7600

[2.9.4] - 2025-06-02

Changed

  • Implement parsing for mwld 2.7+ generated mapfiles.
  • Handle *fill*s in mwld.

2.9.3

Choose a tag to compare

@AngheloAlf AngheloAlf released this 01 Jun 15:05
85a283e

[2.9.3] - 2025-06-01

Fixed

  • Try to infer the rom address of sections and segments even when the mapfile
    does not have it explictly on GNU mapfiles.