release_1.9.0
·
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
MainWindowlogic into dedicated services (OrchestratorService,XisoWriter,NativeIsoIntegrityService,ExternalToolService). - Implemented Dependency Injection via
Microsoft.Extensions.DependencyInjectioninApp.xaml.cs. - Introduced standardized interfaces for all core services to improve testability and modularity.
- Decomposed monolithic
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.