Repository navigation
Releases: Decompollaborate/mapfile_parser
Releases · Decompollaborate/mapfile_parser
Release list
2.13.2
2.13.1
[2.13.1] - 2026-08-18
Fixed
- Fix
first_diffand some lookup functions grabbing the first existing
.NON_MATCHINGmarker instead of the actual symbol.
2.13.0
[2.13.0] - 2026-06-28
Added
findPossibleSymbolsByVram,findPossibleSymbolsByVrom, and
findPossibleSymbolsByNameforMapFileandfindPossibleSymbolByVram,
findPossibleSymbolByVrom, andfindPossibleSymbolsByNameforSegment.- 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.
- Allow iterating over the mapfile looking for multiple symbols that could
Symbol::isNonmatching: If true, the current symbol is a.NON_MATCHING
marker symbol.Section::containsVram,Section::containsVrom,Segment::containsVram,
Segment::containsVrom.
Changed
sym_infonow iterates over every possible vram/vrom address for every
segment instead of only printing the first found one.
2.12.2
[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.
- They were being filtered only if they matched the pattern
2.12.1
[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.
- Specifically useful for abi3 wheels, so we can ensure the wheel is
- Integrate
uvin 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-settings0.0.10 is now required.
2.12.0
[2.12.0] - 2025-10-11
Added
- Install a
mapfile_parserprogram 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
uvxorpipx.
- This provides the same functionality as running the library module with
- Prebuilt binaries for Python 3.14.
Changed
- Update the
pyo3dependency version.
2.11.0
[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_MATCHINGmarkers 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: Trueon yourdecomp.yamlfile.
- Data progress reporting requires
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
checkingSymbol::inferred_static.
- For every inferred static sym a corresponding symbol will be inserted into
- The
--emit-categoriesflag ofobjdiff_reportnot sets
check_asm_paths: Falseandreport_data: Trueby default.
Fixed
- Fix the vram address plf-resolved mapfiles when the sections of those plfs
were not relative to zero.
2.10.0
[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 thatplf. - Rust:
MapFile::resolve_partially_linked_files(). - Python:
MapFile::resolvePartiallyLinkedFiles().
- This is done by calling a function with a user provided callback that
- All the CLI utilities include basic support for
plfs.- Pass the flag
-x .extensionor--plf-ext .extensionto specify the
extension of the partially linked objects files that should be replaced with
a.mapextension. - The frontends API allow to further customize this behavior by passing a
callback like the one used byMapFile::resolvePartiallyLinkedFiles.
- Pass the flag
2.9.4
[2.9.4] - 2025-06-02
Changed
- Implement parsing for
mwld2.7+ generated mapfiles. - Handle
*fill*s inmwld.
2.9.3
[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.