All notable changes to this project will be documented in this file.
The format follows Keep a Changelog,
and this project adheres to Semantic Versioning.
- Decompilation can now start from the first byte of a code region (#12).
- Invalid instructions are now considered the end of a function trace (#11).
- Improved stability of function tracing and edge-case instruction handling.
- Minor internal decompiler logic bugs.
- General performance and reliability improvements across builds.
- All Windows builds now include both GUI and CLI versions.
- Linux and macOS builds are CLI-only.
- All binaries are self-contained and do not require a .NET runtime.
Contributors:
@KallDrexx
- Implemented single function decompiler with proper tracing.
- Added support for sub-address instructions and virtual instructions (#10).
- Added CI/CD workflow (
build-release.yml) for automated builds and packaging. - Added multiple platform releases:
- Windows (x64, x86, ARM64) with GUI + CLI
- Linux (x64, ARM64) CLI
- macOS (x64, ARM64) CLI
- Improved function discovery to handle wraparound and disassembly boundaries (#9).
- Reworked
ToString()formatting for instructions for clarity. - Improved tracing logic for unreferenced instruction analysis (#6).
- Decompiler now directly jumps to instructions that appear within other instructions.
- Fixed incorrect ordering of instructions in output.
- Fixed 16KB ROMs not decompiling (#7).
- Fixed nullability warnings.
- Fixed various stability issues in the decompiler core.
Contributors:
@ApfelTeeSaft, @KallDrexx
- Initial release of the NES Decompiler.
- Included both CLI and GUI builds for Windows (x64).
- Added base decompilation engine and ROM handling logic.
- Added initial README and documentation.
Contributors:
@ApfelTeeSaft
- Planned improvements to function boundary detection.
- Optimizations for recursive instruction analysis.
- Additional architecture support under evaluation.