Skip to content

release_1.9.0

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 28 Jan 04:01
· 148 commits to master since this release

Major architectural overhaul of the BatchConvertIsoToXiso utility, transitioning from a wrapper for external tools to a more robust, native C# application.

Core Technical Changes

  • Native XISO Engine: Removed the dependency on extract-xiso.exe. Core ISO rewriting, trimming, and structural verification are now handled by a custom, native C# engine.
  • Iterative Traversal: Refactored XDVDFS directory traversal from a recursive approach to an iterative one using a stack. This improves maintainability and eliminates stack overflow risks during deep directory processing.
  • Service-Oriented Architecture:
    • Decomposed monolithic MainWindow logic into dedicated services (OrchestratorService, XisoWriter, NativeIsoIntegrityService, ExternalToolService).
    • Implemented Dependency Injection via Microsoft.Extensions.DependencyInjection in App.xaml.cs.
    • Introduced standardized interfaces for all core services to improve testability and modularity.

New Features & UI Enhancements

  • XISO Explorer: Added a new UI tab and logic to browse the internal file structure of Xbox ISOs directly within the application.
  • Enhanced Integrity Testing: Introduced a "Perform Deep Scan" option for sequential sector-read tests and a "Check Output Integrity" toggle for post-conversion validation.
  • UI Redesign: Revamped the layout for better responsiveness and a cleaner aesthetic. Improved progress reporting with indeterminate state handling and immediate visual feedback.
  • ARM64 Support: Added support for ARM64 architectures, including the inclusion of 7z_arm64.dll.

Safety & Maintenance

  • Security Fixes: Mitigated "Zip Slip" vulnerabilities by sanitizing extraction paths and enhancing attribute handling during archive operations.
  • Robust File I/O: Improved handling of cloud-stored files (e.g., OneDrive) with retry prompts and implemented more resilient file move/delete operations to handle transient locks.
  • Code Cleanup: Removed redundant partial classes, obsolete settings logic, and unused dependencies.