-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Architecture
This page summarizes the high-level architecture direction of Hakamiq CHD Tool.
Hakamiq CHD Tool is a Windows x64 WPF desktop application built around safe local CHD workflows, clear user feedback, and maintainable separation between UI, workflow logic, and infrastructure services.
Hakamiq CHD Tool is currently WPF-only.
The project does not target Avalonia, web UI, cloud conversion, or server-side conversion in the current architecture.
The application architecture focuses on:
- Clear separation between UI and workflow logic
- Minimal code-behind in WPF windows
- ViewModel-driven interaction
- Conservative input classification
- Safe queue execution
- Explicit conversion result states
- Local-only processing
- Predictable release packaging
- Arabic and English UI support
- RTL layout with LTR technical text where needed
The UI layer is responsible for presentation only.
WPF windows and dialogs should act as lightweight shells. They should avoid heavy parsing, formatting, conversion decisions, or business logic.
A healthy WPF window should normally contain only UI initialization, DataContext setup, basic window behavior, and dialog closing behavior.
ViewModels coordinate user-facing state and commands.
They may prepare display text, expose command state, handle user interaction flow, and communicate with services through clear interfaces.
ViewModels should not directly perform heavy file conversion, storage inspection, Redump database logic, or release packaging work.
Services contain application behavior that is not UI-specific.
Examples include:
- Input inspection
- Conversion planning
- Queue execution
- Output safety checks
- Redump metadata access
- Storage advisory logic
- File system operations
- Release verification support
- Logging and diagnostics
Services should be testable without requiring WPF windows.
The workflow layer coordinates the conversion lifecycle.
A conversion item should have a clear result state such as:
- Success
- Failed
- Skipped because output already exists
- Canceled by the user
User cancellation should not be reported as a normal conversion failure.
Hakamiq CHD Tool should avoid unsafe assumptions about unknown or incomplete inputs.
Standalone BIN files, missing companion files, damaged sources, unsupported layouts, and uncertain console identity should be handled conservatively.
When the application cannot classify an input safely, it should stop, skip, or warn instead of continuing blindly.
Sony PlayStation 3 support is experimental.
PS3-related inputs may be inspected, classified, warned, skipped, or refused depending on detected structure and safety checks.
Detection does not imply full conversion support.
The architecture should keep PS3-specific inspection and planning separated from general disc conversion behavior so experimental support does not destabilize stable workflows.
Redump-related functionality should remain informational and verification-oriented.
Redump metadata may help identify disc information and verification context, but it should not override local safety checks or imply that a damaged source is valid.
Storage advisory logic should be separated from UI rendering.
The application may report storage, topology, or temperature-related warnings when available, but unavailable readings should be represented clearly instead of guessed.
The application supports Arabic and English UI behavior.
General UI may use RTL layout, while technical values such as paths, filenames, hashes, command output, and logs should remain readable as LTR technical islands where appropriate.
End-user release packages should be generated from the official publish workflow.
A clean release should not contain source code, repository metadata, CI files, local build artifacts, or developer-only scripts.
The final package should feel like a finished desktop application, not a copy of the development repository.
The project should use verification steps to protect architecture and release quality.
Verification may include:
- Repository convention checks
- Debug build validation
- Release build validation
- Publish output validation
- Release manifest generation
- End-user package safety checks
Hakamiq CHD Tool should prefer predictable behavior, clear warnings, and safe refusal over automatic behavior that may damage output quality or mislead the user.
The architecture should make correct behavior easier to maintain than unsafe shortcuts.
Hakamiq CHD Tool · Windows x64 WPF desktop release · Built for safe local CHD workflows.
HAKAMIQ © 2026