Skip to content

sonicFanTech/Cobvuz-Virtual

Repository files navigation

Logo

Cobvuz Virtual

A powerful Windows VM manager with a clean GUI — no command line required.

Built on Microsoft Hyper-V. Supports guest OSes from Windows 1.0 all the way to Windows 10 and Linux, with both Legacy BIOS and UEFI firmware.

Platform Architecture Built With Hyper-V Status License


Created for personal use and YouTube content — not open source at this time.


Website

https://sonicfantech.org/Site/CobvuzVirtualDownload/

Table of Contents


What is Cobvuz Virtual?

Cobvuz Virtual is a full GUI virtual machine manager for Windows that wraps Microsoft's built-in Hyper-V hypervisor. Instead of using Hyper-V Manager or PowerShell commands, Cobvuz Virtual gives you a clean, modern dark-themed interface to create, configure, and run virtual machines — all with point-and-click simplicity.

It supports an unusually wide range of guest operating systems, from ancient DOS and Windows 1.0 all the way up to modern Windows 10 and Linux distributions. This is made possible through dual firmware support — SeaBIOS for legacy OSes and OVMF (UEFI) for modern ones — and the raw power of Hyper-V running underneath.

This project was built from scratch in C++17 using the Win32 API with no third-party UI frameworks, making it lightweight and fast. The backend is split across three custom DLLs for clean modularity.


Features

VM Management

  • Create Virtual Machines through a guided 6-step wizard — no manual config required
  • Start, Stop, Pause, Resume, and Save VM state directly from the main window
  • Delete VMs with a confirmation prompt, cleaning up all associated files
  • View all VMs in a list with live columns for Name, OS, State, RAM, CPU count, and Firmware type
  • VM state tracking — Running, Stopped, Paused, Saved, and Error states shown at a glance

VM Creation Wizard (6 Steps)

The wizard walks you through every setting before creating your VM:

Step What You Configure
1 – Name & OS VM name, description, and guest OS type (auto-suggests firmware)
2 – Hardware CPU core count (1–32), RAM in MB (256 MB – 128 GB), Video RAM
3 – Storage Virtual hard disk size (GB), disk path, optional boot ISO file
4 – Network Hyper-V virtual switch selection, or no networking
5 – Firmware Legacy BIOS (SeaBIOS) or UEFI (OVMF), Secure Boot toggle
6 – Summary Full review of all settings before VM creation

Dual Firmware Support

Cobvuz Virtual is one of the few GUI frontends to offer true dual firmware selection per VM:

  • Legacy BIOS via SeaBIOS — open-source BIOS implementation, perfect for DOS, Windows 9x, and Windows XP
  • UEFI via OVMF — Open Virtual Machine Firmware, required for modern OS installs with GPT disks

The wizard automatically suggests the correct firmware type based on the OS you select — no guessing required.

Disk Management

  • Automatically creates dynamically expanding VHDX files (efficient, only grows as used)
  • Custom disk path and filename selection
  • ISO attachment for OS installation
  • Disk sizes from 1 GB up to 65,536 GB

Network

  • Lists all existing Hyper-V virtual switches
  • Supports External, Internal, and Private switch types
  • Option to run a VM with no network adapter

UI & Usability

  • Fully GUI-driven — zero command line interaction needed
  • Dark theme throughout with a custom color scheme (deep navy + accent blue)
  • DPI aware — scales correctly on 4K/HiDPI monitors
  • Dark title bar via Windows 11 DWM dark mode
  • File browser dialogs for ISO and VHDX path selection
  • Settings panel to change where VMs are stored
  • Status bar showing current operation result
  • About panel with version info

Architecture

  • Built in C++17 targeting x64
  • Pure Win32 API — no MFC, Qt, wxWidgets, or Electron
  • Three modular custom DLLs (see Architecture & DLLs)
  • Multi-threaded VM operations (start/stop run on background threads, never freeze the UI)
  • VM configs stored as simple .cvm key-value files alongside VHDX disks

Supported Guest Operating Systems

Guest OS Firmware Notes
Windows 10 (32 & 64-bit) UEFI (OVMF) Best experience
Windows 8.1 (32 & 64-bit) UEFI (OVMF) Works great
Windows 8 (64-bit) UEFI (OVMF) Works great
Windows 7 (32 & 64-bit) Legacy or UEFI Both firmware types work
Windows Vista (32 & 64-bit) Legacy (SeaBIOS) Recommended
Windows XP (32-bit) Legacy (SeaBIOS) Classic, works well
Windows 2000 Legacy (SeaBIOS) Stable
Windows ME Legacy (SeaBIOS) Low RAM (128–256 MB)
Windows 98 SE Legacy (SeaBIOS) Low RAM (64–128 MB)
Windows 95 Legacy (SeaBIOS) Very low RAM (16–64 MB)
Windows 3.x Legacy (SeaBIOS) 4–16 MB RAM
Windows 1.0 Legacy (SeaBIOS) 1–4 MB RAM, historical
Ubuntu / Debian / Fedora UEFI or Legacy Both work fine
Arch Linux UEFI (OVMF) Recommended
CentOS / RHEL UEFI or Legacy Both work
MS-DOS / FreeDOS Legacy (SeaBIOS) 16–32 MB RAM
Other Linux UEFI or Legacy Depends on distro

Note on Windows 11: Windows 11 requires TPM 2.0. Hyper-V Generation 2 VMs can emulate a virtual TPM, but full Windows 11 guest support is outside Cobvuz Virtual's current scope. Windows 10 is the recommended modern Windows guest.


Screenshots

Screenshots will be added as development progresses.


Requirements

To Run Cobvuz Virtual

Requirement Details
OS Windows 10 Pro / Enterprise / Education, or Windows 11 Pro+
Architecture 64-bit (x64) only
CPU Intel VT-x or AMD-V enabled in BIOS/UEFI settings
RAM Host: 8 GB+ recommended
Hyper-V Must be enabled (comes free with Windows Pro)
Privileges Must run as Administrator

To Build Cobvuz Virtual

Requirement Details
IDE Visual Studio 2022 v17 or VS 2026 v18
Toolset MSVC v143 (included with VS 2022/2026)
C++ Standard C++17
SDK Windows 10 SDK 10.0+

How to Build

  1. Enable Hyper-V on your machine (see docs/SETUP.md)
  2. Open CobvuzVirtual.sln in Visual Studio
  3. Set configuration to Release | x64
  4. Press Ctrl+Shift+B to Build Solution
  5. All four projects build automatically in the correct order:
    • VMStorage.dllFirmwareManager.dllHyperVBridge.dllCobvuzVirtual.exe
  6. Output goes to x64\Release\

See docs/SETUP.md for the full guide including Hyper-V setup, virtual switch creation, and firmware file placement.


Firmware Setup

Cobvuz Virtual requires two open-source firmware files that are not bundled with the project. Download them once and place them in the firmware\ folder next to the EXE.

SeaBIOS (Legacy BIOS)

SeaBIOS is a free, open-source implementation of the x86 legacy BIOS standard.

Download:

  • Official site: https://www.seabios.org/downloads/
  • Pre-built binary: Download the latest seabios.bin from the releases page
  • Alternative: Get bios.bin from a QEMU for Windows installation (C:\Program Files\qemu\)

Rename the file to seabios.bin and place it at:

<your build output folder>\firmware\seabios.bin

OVMF (UEFI Firmware)

OVMF is the open-source UEFI implementation from the TianoCore project.

Download option 1 — TianoCore official:

Download option 2 — From QEMU for Windows (easiest):

  1. Download QEMU for Windows: https://www.qemu.org/download/#windows
  2. Install it (or just extract the ZIP)
  3. Find OVMF.fd inside the QEMU folder (usually C:\Program Files\qemu\)
  4. Copy that file to your firmware folder

Download option 3 — From EDK2 releases on GitHub:

Place it at:

<your build output folder>\firmware\OVMF.fd

Final Folder Layout

After downloading both files, your output directory should look like this:

x64\Release\
    CobvuzVirtual.exe
    HyperVBridge.dll
    FirmwareManager.dll
    VMStorage.dll
    firmware\
        seabios.bin     ← SeaBIOS for legacy VMs
        OVMF.fd         ← OVMF for UEFI VMs

Both firmware files are validated on first use by FirmwareManager.dll. If either is missing or corrupt, Cobvuz Virtual will warn you when creating a VM with that firmware type.


Project Structure

CobvuzVirtual/
│
├── CobvuzVirtual.sln              Visual Studio solution (open this)
├── CobvuzVirtual.vcxproj          Main EXE project file
├── README.md                      This file
├── LICENSE                        Proprietary license
│
├── src/                           Main application source files
│   ├── main.cpp                   Entry point, COM init, message loop
│   ├── AppTheme.cpp               Dark theme colors, fonts, GDI helpers
│   ├── VMConfig.cpp               VM config serialisation (.cvm files)
│   ├── MainWindow.cpp             Main window, VM list, toolbar, layout
│   ├── VMCreationWizard.cpp       6-page VM creation wizard
│   ├── SettingsPanel.cpp          App settings dialog
│   ├── AboutPanel.cpp             About dialog
│   └── VMDetailPanel.cpp          VM detail/info panel
│
├── include/                       Header files
│   ├── stdafx.h                   Precompiled header (Windows, STL)
│   ├── AppTheme.h
│   ├── VMConfig.h                 VMConfig struct, FirmwareType, VMState enums
│   ├── MainWindow.h
│   ├── VMCreationWizard.h
│   ├── SettingsPanel.h
│   ├── AboutPanel.h
│   └── VMDetailPanel.h
│
├── resources/
│   ├── resource.rc                Version info, manifest embedding
│   └── CobvuzVirtual.manifest     UAC elevation + DPI awareness + Common Controls v6
│
├── dll/
│   ├── HyperVBridge/              Hyper-V WMI wrapper DLL
│   │   ├── HyperVBridge.h
│   │   ├── HyperVBridge.cpp
│   │   └── HyperVBridge.vcxproj
│   │
│   ├── FirmwareManager/           Firmware file management DLL
│   │   ├── FirmwareManager.h
│   │   ├── FirmwareManager.cpp
│   │   └── FirmwareManager.vcxproj
│   │
│   └── VMStorage/                 VM config and disk storage DLL
│       ├── VMStorage.h
│       ├── VMStorage.cpp
│       └── VMStorage.vcxproj
│
└── docs/
    └── SETUP.md                   Full setup and build guide

Architecture & DLLs

Cobvuz Virtual's backend is split across three custom DLLs. This keeps the main EXE clean and makes each subsystem independently testable.

HyperVBridge.dll

The heart of the application. Wraps Microsoft's Hyper-V WMI API (root\virtualization\v2 namespace) so the main EXE doesn't need to link WMI headers directly.

Exposed functions:

  • HVB_Init() / HVB_Shutdown() — Connect/disconnect from Hyper-V WMI
  • HVB_CreateVM() — Create a new Hyper-V VM with all settings
  • HVB_DeleteVM() — Permanently remove a VM from Hyper-V
  • HVB_StartVM() / HVB_StopVM() / HVB_PauseVM() / HVB_ResumeVM() / HVB_SaveVM()
  • HVB_GetVMState() — Query current VM state (running, stopped, paused...)
  • HVB_CreateVHDX() — Create a dynamic virtual hard disk
  • HVB_AttachISO() — Attach an ISO as a virtual DVD drive
  • HVB_ListVMs() — Enumerate all Hyper-V VMs
  • HVB_ListSwitches() — List available virtual switches
  • HVB_LastError() — Get last error message string

FirmwareManager.dll

Manages firmware file locations, validation, and deployment.

Exposed functions:

  • FWM_GetFirmwarePath() — Returns path to seabios.bin or OVMF.fd
  • FWM_ValidateFirmware() — Checks that the firmware file exists and has correct size
  • FWM_DeployFirmware() — Copies firmware to a VM's working directory
  • FWM_GetFirmwareName() / FWM_GetFirmwareDescription() — Human-readable info strings

VMStorage.dll

Handles the on-disk storage structure for VM configs and disk images.

Exposed functions:

  • VMS_Init() — Set the root storage directory (creates it if needed)
  • VMS_GetRoot() — Returns current storage root path
  • VMS_CreateVMDir() — Creates a per-VM folder, returns its path
  • VMS_DeleteVMDir() — Removes an entire VM folder and all its contents
  • VMS_ListVMConfigs() — Scans storage root for .cvm config files
  • VMS_GetDefaultVHDXPath() — Returns the default VHDX path for a named VM

How It Works

User clicks "New VM"
        │
        ▼
VMCreationWizard (6 pages, Win32 dialog)
        │  collects: name, OS, CPU, RAM, disk, ISO, network, firmware
        ▼
VMConfig struct populated
        │
        ├──▶ VMStorage.dll  ──▶  Creates VM folder on disk
        │                        Saves .cvm config file
        │
        ├──▶ HyperVBridge.dll ─▶  HVB_CreateVHDX()  (creates .vhdx file)
        │                          HVB_CreateVM()    (registers with Hyper-V via WMI)
        │                          HVB_AttachISO()   (mounts boot ISO if provided)
        │
        └──▶ MainWindow refreshes VM list

When starting a VM, HyperVBridge.dll calls RequestStateChange on the Msvm_ComputerSystem WMI class, which tells Hyper-V to power on the VM. The VM's display is handled by Hyper-V itself through the standard Hyper-V Virtual Machine Connection window.


Roadmap

Planned future features (personal development backlog):

  • Snapshot creation and restore
  • VM export / import
  • Live VM performance graphs (CPU %, RAM usage)
  • Drag-and-drop ISO mounting
  • Quick-create presets for common OSes (e.g. "Windows XP preset")
  • Integrated Hyper-V Virtual Machine Connection viewer (embed display in app)
  • VM cloning
  • Keyboard shortcut support
  • Tray icon with quick-access menu
  • VM search / filter bar
  • Dark/light theme toggle

License & Usage

Cobvuz Virtual is proprietary software and is not open source.

This project was created for personal use and YouTube content production. It is not licensed for distribution, modification, or use by third parties at this time.

See LICENSE for full terms.


Made with C++17 · Win32 API · Hyper-V WMI · SeaBIOS · OVMF

Cobvuz Virtual — Your VMs, your way.

About

Cobvuz Virtual is is Modern Custom VM Software

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors