{"id":39349285,"url":"https://github.com/drpetersonfernandes/batchconverttorvz","last_synced_at":"2026-06-06T05:01:24.446Z","repository":{"id":295118876,"uuid":"989168304","full_name":"drpetersonfernandes/BatchConvertToRVZ","owner":"drpetersonfernandes","description":"A Windows desktop utility for batch converting GameCube and Wii disc images to RVZ format with verification capabilities.","archived":false,"fork":false,"pushed_at":"2026-04-12T06:38:29.000Z","size":16603,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-12T08:11:09.736Z","etag":null,"topics":["dolphin","dolphin-emu","gamecube","iso","rvz","tools","wii"],"latest_commit_sha":null,"homepage":"https://www.purelogiccode.com","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drpetersonfernandes.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-23T17:03:27.000Z","updated_at":"2026-04-12T06:38:32.000Z","dependencies_parsed_at":"2025-09-01T07:08:12.891Z","dependency_job_id":"c5abe317-2fec-4a62-9177-74e8c9f7cb3e","html_url":"https://github.com/drpetersonfernandes/BatchConvertToRVZ","commit_stats":null,"previous_names":["drpetersonfernandes/batchconverttorvz"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/drpetersonfernandes/BatchConvertToRVZ","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drpetersonfernandes%2FBatchConvertToRVZ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drpetersonfernandes%2FBatchConvertToRVZ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drpetersonfernandes%2FBatchConvertToRVZ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drpetersonfernandes%2FBatchConvertToRVZ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drpetersonfernandes","download_url":"https://codeload.github.com/drpetersonfernandes/BatchConvertToRVZ/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drpetersonfernandes%2FBatchConvertToRVZ/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31779947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dolphin","dolphin-emu","gamecube","iso","rvz","tools","wii"],"created_at":"2026-01-18T02:27:30.706Z","updated_at":"2026-06-06T05:01:24.439Z","avatar_url":"https://github.com/drpetersonfernandes.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Batch Convert to RVZ\n\n[![Platform](https://img.shields.io/badge/platform-Windows%20x64%20%7C%20ARM64-blue)](https://github.com/drpetersonfernandes/BatchConvertToRVZ/releases)\n[![.NET 10.0](https://img.shields.io/badge/.NET-10.0-blue.svg)](https://dotnet.microsoft.com/download/dotnet/10.0)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE.txt)\n[![GitHub release](https://img.shields.io/github/v/release/drpetersonfernandes/BatchConvertToRVZ)](https://github.com/drpetersonfernandes/BatchConvertToRVZ/releases)\n\nA Windows desktop utility for batch converting GameCube and Wii disc images to RVZ format with verification capabilities.\n\n![Batch Convert to RVZ](screenshot.png)\n\n![Batch Convert to RVZ](screenshot2.png)\n\n## Overview\n\nBatch Convert to RVZ is a comprehensive Windows application that provides a user-friendly interface for converting multiple GameCube and Wii game files to the RVZ format. It uses **DolphinTool** from the Dolphin Emulator project for conversions and verification, while providing advanced features like batch processing and archive extraction.\n\n## Features\n\n### Conversion Features\n- **Batch Processing**: Convert multiple files in a single operation.\n- **Supported Input Formats**: Handles GameCube and Wii disc images (`.iso`, `.gcm`, `.wbfs`, `.nkit.iso`) and archives containing them (`.zip`, `.7z`, `.rar`).\n- **Archive Extraction**: Automatically extracts and processes game files from ZIP, 7Z, and RAR archives using SharpCompress.\n- **Configurable Compression**: Customize compression method, level, and block size for optimal results.\n\n- **Smart File Handling**: Skips files that already exist in the output directory.\n- **Delete Original Option**: Optionally remove source files (including archives) after successful conversion.\n- **Robust Parsing**: Advanced logic for handling compound extensions like `.nkit.iso` and localized number formats.\n\n### Verification Features\n- **RVZ Integrity Verification**: Verify the integrity of existing RVZ files using DolphinTool.\n- **Real-time Feedback**: Live logging of DolphinTool verification output (not just at the end).\n- **Batch Verification**: Check multiple RVZ files in a single operation.\n\n- **File Organization**: Automatically move verified files to `_Success` or `_Failed` subfolders.\n- **Detailed Reporting**: Get comprehensive verification results for each file.\n\n### User Experience\n- **Smooth Progress Tracking**: A single, overall progress bar that smoothly tracks the entire batch operation, including real-time percentages from active tasks.\n- **Intelligent Auto-Scroll**: The log viewer only snaps to the bottom if you are already looking at the latest logs, allowing you to read previous errors without interruption.\n- **Immediate Cancellation**: Stop extractions and conversions instantly, even for massive 8GB+ files, thanks to asynchronous I/O and cancellation token support.\n- **Optimized Logging**: High-performance log processing that handles thousands of lines without UI stuttering or high memory usage.\n- **Thread-Safe Dialogs**: Robust UI handling that prevents crashes when showing error messages or update prompts from background threads.\n- **Auto-Update Checking**: Accurate version comparison between GitHub release tags and assembly versions with seamless GitHub integration.\n\n### Technical Features\n- **Asynchronous Architecture**: Fully async/await implementation to keep the UI responsive during intensive I/O and processing.\n- **Cross-Architecture Support**: Native support for both x64 and ARM64 Windows systems.\n- **Global Error Reporting**: Automatic bug reporting to developers with comprehensive error details.\n- **Robust Cleanup**: Asynchronous retry logic for deleting locked temporary files and directories.\n- **Memory Management**: Efficient string handling and proper resource disposal to prevent leaks.\n\n## Architecture\n\nThe application follows a modular architecture with clear separation of concerns:\n\n| Component | Responsibility |\n|-----------|----------------|\n| `MainWindow` | UI coordination, user interaction handling, operation orchestration |\n| `ConversionService` | Core conversion logic, progress tracking, cancellation support |\n| `VerificationService` | RVZ integrity verification with real-time output |\n| `ExtractionService` | Archive extraction (ZIP, 7Z, RAR) with cancellation support |\n| `FileService` | File scanning, filtering, and output path management |\n| `UpdateService` | GitHub API integration for checking application updates |\n| `BugReportService` | Automatic error reporting to development team |\n| `StatsService` | Statistics tracking for conversion and verification operations |\n| `SharedHttpHandler` | Shared HttpClient configuration for update and bug report services |\n| `FileItem` | Data model for file state, progress, and status tracking |\n| `GitHubRelease` | Data model for GitHub release information |\n| `SystemInfo` | System information data model |\n| `DolphinTool` | External tool for RVZ conversion and verification |\n| `SharpCompress` | Third-party library for archive extraction |\n\n## Supported File Formats\n\n### Input Formats\n- **ISO files**: GameCube and Wii disc images (`.iso`)\n- **GCM files**: GameCube disc images (`.gcm`)\n- **WBFS files**: Wii Backup File System images (`.wbfs`)\n- **NKit ISO files**: NKit compressed ISO files (`.nkit.iso`)\n- **Archive files**: ZIP, 7Z, and RAR archives containing game files (`.zip`, `.7z`, `.rar`)\n\n### Output Formats\n- **RVZ files**: Compressed GameCube/Wii disc images (`.rvz`)\n\n## Requirements\n\n- **Runtime**: [.NET 10.0 Runtime](https://dotnet.microsoft.com/download/dotnet/10.0)\n- **Operating System**: Windows 10 or later (x64 or ARM64)\n- **Dependencies**: All required files are included in the release:\n  - `DolphinTool.exe` (x64 systems)\n  - `DolphinTool_arm64.exe` (ARM64 systems)\n\n## Installation\n\n1. Download the latest release from the [Releases page](https://github.com/drpetersonfernandes/BatchConvertToRVZ/releases)\n2. Extract the ZIP file to a folder of your choice\n3. Run `BatchConvertToRVZ.exe`\n\n## Usage\n\n### Converting Files\n\n1. **Select Input Folder**: Click \"Browse\" next to \"Input Folder\" to select the folder containing game files or archives to convert.\n2. **Select Output Folder**: Click \"Browse\" next to \"Output Folder\" to choose where the RVZ files will be saved.\n3. **Configure General Settings**:\n   - Check \"Delete original files after conversion\" to remove source files after successful conversion.\n\n4. **Configure Compression Settings**:\n   - **Method**: Choose compression algorithm (zstd, zlib, lzma, lzma2, bzip2, lz4).\n   - **Level**: Adjust compression level (varies by method, e.g., 1-22 for zstd).\n   - **Block Size**: Select block size (32KB to 2MB, 128KB recommended).\n5. **Start Conversion**: Click \"Start Conversion\" to begin the batch process.\n6. **Monitor Progress**: Watch the smooth overall progress bar, statistics, and real-time log messages.\n7. **Cancel (if needed)**: Click \"Cancel\" to stop the operation gracefully and instantly.\n\n### Verifying RVZ Files\n\n1. **Switch to Verify Tab**: Click the \"Verify Integrity\" tab.\n2. **Select Verify Folder**: Click \"Browse\" to select the folder containing RVZ files to verify.\n3. **Configure Options**:\n\n   - Check \"Move failed RVZ files to '_Failed' subfolder\" to organize problematic files.\n   - Check \"Move successful RVZ files to '_Success' subfolder\" to organize verified files.\n4. **Start Verification**: Click \"Start Verification\" to begin checking file integrity with real-time feedback.\n5. **Review Results**: Check the log and statistics for detailed verification results.\n\n### Menu Options\n\n- **File \u003e Exit**: Close the application.\n- **Help \u003e Check for Updates**: Manually check for new versions on GitHub.\n- **Help \u003e About**: View application information and credits.\n\n## Compression Settings Guide\n\n### Compression Methods\n| Method | Speed | Compression | Use Case |\n|--------|-------|-------------|----------|\n| **zstd** (default) | Fast | Good | Best balance for most users |\n| zlib | Medium | Good | Maximum compatibility |\n| lzma/lzma2 | Slow | Excellent | Maximum compression |\n| bzip2 | Slow | Good | Alternative option |\n| lz4 | Very Fast | Moderate | Speed priority |\n\n### Recommended Settings\n- **Default**: zstd, level 5, 128KB block size\n- **Maximum Compression**: lzma2, level 9, 2MB block size\n- **Fastest Conversion**: lz4, level 1, 32KB block size\n\n## About RVZ Format\n\nRVZ is a compressed disk image format developed specifically for the Dolphin Emulator. It is designed to store GameCube and Wii game data efficiently while retaining all necessary information for emulation.\n\n### Key Benefits\n- **Efficient Compression**: Significantly reduces file sizes compared to raw ISO images using advanced compression algorithms like Zstandard.\n- **Lossless**: Compression is completely lossless, meaning no game data is lost during conversion.\n- **Metadata Preservation**: Maintains all important disc metadata and structure.\n- **Data Integrity**: Includes built-in verification to ensure image integrity.\n- **Full Compatibility**: Directly supported by modern versions of Dolphin Emulator.\n- **Faster Loading**: Often loads faster than uncompressed ISOs due to reduced I/O overhead.\n\n## Troubleshooting\n\n- **Missing Dependencies**: Ensure `DolphinTool.exe` (or `DolphinTool_arm64.exe` for ARM64 systems) is present in the application directory.\n- **Permission Issues**: Make sure you have read permissions for input directories and write permissions for output directories.\n- **Archive Extraction Failures**: Verify that the archive files are not corrupted. The app now supports instant cancellation if extraction hangs.\n- **Conversion Errors**: Check the detailed real-time log output for specific error messages.\n- **Performance Issues**: Try reducing the number of concurrent files if you experience system instability.\n- **Auto-Reporting**: The application automatically reports unexpected errors to developers for continuous improvement.\n\n## Development\n\n### Project Structure\n```\nBatchConvertToRVZ/\n├── App.xaml.cs              # Application entry point, global exception handling\n├── MainWindow.xaml          # Main UI definition\n├── MainWindow.xaml.cs       # Main UI logic and operation orchestration\n├── AboutWindow.xaml         # About dialog UI\n├── AboutWindow.xaml.cs      # About dialog logic\n├── services/\n│   ├── BugReportService.cs  # Automatic error reporting service\n│   ├── ConversionService.cs # Core conversion logic\n│   ├── ExtractionService.cs # Archive extraction logic\n│   ├── FileService.cs       # File scanning and filtering\n│   ├── SharedHttpHandler.cs # Shared HTTP client configuration\n│   ├── StatsService.cs      # Statistics tracking service\n│   ├── UpdateService.cs     # GitHub update checking service\n│   └── VerificationService.cs # RVZ integrity verification\n├── models/\n│   ├── FileItem.cs          # File state and progress tracking model\n│   ├── GitHubRelease.cs     # GitHub API response model\n│   └── SystemInfo.cs        # System information model\n├── icon/                    # Application icons\n├── images/                  # UI images (menu icons, logo)\n├── DolphinTool*.exe         # External conversion/verification tool\n└── BatchConvertToRVZ.Tests/ # Unit tests (xUnit)\n```\n\n### Building from Source\n1. Install [.NET 10.0 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)\n2. Clone the repository\n3. Run `dotnet build` or open in Visual Studio / JetBrains Rider\n\n### Running Tests\nThe project includes unit tests covering models and services using xUnit:\n```bash\ndotnet test\n```\n\n## Acknowledgements\n\n- **DolphinTool**: Uses `DolphinTool` from the [Dolphin Emulator project](https://dolphin-emu.org/) for RVZ conversion and verification.\n- **SharpCompress**: Uses the [SharpCompress](https://github.com/adamhathcock/sharpcompress) library for reliable archive extraction.\n- **Development**: Created and maintained by [Pure Logic Code](https://www.purelogiccode.com)\n\n## Support the Project\n\n### ⭐ Give us a Star!\nIf you find this application useful, please consider giving us a star on GitHub! It helps others discover the project and motivates us to continue improving it.\n\n[⭐ Star this project on GitHub](https://github.com/drpetersonfernandes/BatchConvertToRVZ)\n\n### 💖 Support Development\nThis application is developed and maintained for free. If you'd like to support continued development and new features, consider making a donation:\n\n[💖 Donate to Pure Logic Code](https://www.purelogiccode.com/donate)\n\nYour support helps us:\n- Add new features and improvements\n- Maintain compatibility with new versions of dependencies\n- Provide ongoing bug fixes and support\n- Create more useful tools for the community\n\n---\n\nThank you for using **Batch Convert to RVZ**! For more information, support, and other useful tools, visit [purelogiccode.com](https://www.purelogiccode.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrpetersonfernandes%2Fbatchconverttorvz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrpetersonfernandes%2Fbatchconverttorvz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrpetersonfernandes%2Fbatchconverttorvz/lists"}