Skip to content

Releases: bdgrix/ProcRipper

ProcRipper v3.0.0-beta

Choose a tag to compare

@bdgrix bdgrix released this 04 Jan 17:53

Full Changelog: v2.0.0-beta...v3.0.0-beta

ProcRipper Changelog

v3.0.0 (December 2025) - Major Architecture Overhaul

🎯 Major Changes

Complete Codebase Restructure

  • Modular Architecture: Refactored from single 2700+ line monolithic Main.cs to organized project structure:
    • Core/ - Configuration, monitoring engine, CPU topology detection, logging
    • Features/ - Feature-specific modules (GPU priority, network throttling, DWM optimizer, etc.)
    • UI/ - Tray icon manager, WinForms configuration editor
    • Native/ - P/Invoke wrappers and Windows API interop
  • Separation of Concerns: Split runtime (ProcRipper.exe) from configuration editor (ProcRipperConfig.exe)
  • Improved Maintainability: Each feature now has its own class and namespace

Configuration Editor (ProcRipperConfig.exe)

  • NEW: Dedicated WinForms GUI for configuration management
  • Process Management:
    • Live process list with icons, PID, and memory usage
    • Add/edit/remove game and system process configurations
    • Search and filter running processes
    • Double-click to open detailed process editor
  • Per-Process Settings:
    • Priority control (TIME_CRITICAL to IDLE)
    • CPU affinity management (ALL, specific cores, ranges)
    • Priority boost disable toggle
    • NEW: GPU priority management (Very Low, Low, Normal, High)
  • Thread Management:
    • Per-thread priority configuration
    • Thread affinity settings
    • Thread search and filtering
    • Add/edit/remove thread configurations
  • Module Management:
    • DLL-level priority control
    • Module search and filtering
    • Add/edit/remove module configurations
  • Global Settings:
    • Network throttling toggle
    • Auto-idle prevention toggle
    • Verbose startup toggle
    • NEW: Auto-apply memory caps on game launch
    • NEW: Memory cap safety prompt toggle
    • NEW: Per-app memory limits configuration (MB)
    • Network priority control (Low, Normal, High, Highest)
  • Import/Export:
    • Export configurations as ZIP archives
    • Import configurations with automatic backup
    • Automatic config backups (keeps last 10)
  • Memory Cap Management:
    • Add apps to memory limit list
    • Set per-app MB limits
    • Check apps for auto-restart enforcement
    • "Restart & Apply Memory Cap" button for immediate enforcement

✨ New Features

GPU Priority Management

  • Per-Process GPU Scheduling Control: Set GPU priority for each application
    • none - No GPU priority management (Windows default)
    • very_low - Minimal GPU access (background apps)
    • low - Reduced GPU access
    • normal - Default GPU access
    • high - Maximum GPU access (recommended for games)
  • Continuous Enforcement: GPU priorities reapplied every 100ms to counter Windows resets
  • Windows 10 1709+ Support: Uses ProcessPowerThrottling API
  • Configuration Format: Extended .GCFG files to support 5th parameter
    • Old: [ProcessName.exe,Priority,Affinity,DisableBoost]
    • New: [ProcessName.exe,Priority,Affinity,DisableBoost,GpuPriority]

Auto RAM Cap Enforcement

  • Continuous Memory Monitoring: Checks configured apps every 5 seconds during game sessions
  • Automatic Restart with Job Objects: Kills and relaunches apps exceeding memory limits with hard caps
  • Per-App Configuration: Set custom MB limits for each application
    • Example: chrome_memory_limit_mb=1024, discord_memory_limit_mb=400
  • Selection-Based Enforcement: Only monitors apps explicitly checked in config UI
  • Safety Prompt: Optional confirmation before auto-restarting apps on game launch
  • Global Config Options:
    • auto_apply_memory_caps_on_game_launch=True/False
    • prompt_before_auto_memory_caps_on_game_launch=True/False
    • auto_memory_caps_targets=chrome,discord,steam (comma-separated list)

Shared Configuration Directory

  • Workspace-Anchored Config: Both runtime and config editor now resolve a shared config/ folder
  • Automatic Path Resolution: Walks up directory tree to find workspace root
  • Persistent Settings: Configuration changes now survive across editor/runtime launches
  • Consistent State: No more path mismatches between tools

Enhanced Logging System

  • Minimal vs Verbose Modes: Toggle between clean output and detailed debug info
  • WriteMinimal(): New logging method for clean, color-coded status updates
  • WriteVerbose(): Detailed debug logging only in verbose mode
  • Timestamped Logs: All actions logged to log/log-YYYY-MM-DD-HH-MM-SS.gtxt
  • Console Toggle: CTRL+SHIFT+H to hide/show console window
  • Tray Integration: Tray icon reflects verbose/minimal mode state

🔧 Improvements

Monitoring Engine

  • Multi-Interval Polling:
    • Fast Check (100ms): Thread priority reverts, GPU priority reapplication
    • Slow Check (5s): Process detection, pending threads, memory cap enforcement
    • System Check (7min): System process discovery, smart watchers
  • Smart Watchers: Per-process and per-thread watcher cycles for targeted re-application
  • Memory Cap Monitor: Dedicated MonitorMemoryCapsForTargetProcesses() method
  • Improved Cleanup: Better tracking of process/thread state across lifecycle

CPU Topology Detection

  • Extracted to CpuTopologyDetector: Dedicated class for P-core/E-core detection
  • Hybrid CPU Support: Properly identifies performance and efficiency cores
  • Fallback Logic: Graceful degradation if topology detection fails

Tray Icon Manager

  • Extracted to TrayIconManager: Dedicated UI component
  • Dynamic Status Text: Reflects game optimization state, verbose mode, etc.
  • Context Menu:
    • Show/Hide Console
    • Toggle Verbose Mode
    • Force System Optimizations
    • Exit
  • Balloon Notifications: Inform user of game detection and optimization state

Hotkey System

  • Extracted to HotkeyManager: Dedicated hotkey polling class
  • Event-Driven: Uses callbacks/events instead of direct method calls
  • Supported Hotkeys:
    • CTRL+SHIFT+H: Toggle console visibility
    • CTRL+SHIFT+V: Toggle verbose logging
    • CTRL+SHIFT+G: Force system optimizations

Configuration Loading

  • ConfigLoader Class: Centralized config parsing and data models
  • Extended ProcessConfig: Added GpuPriority property
  • Global Config Parsing: Reads ProcRipper.GCFG for feature toggles and per-app settings
  • Memory Limit Dictionary: Stores <processName>_memory_limit_mb entries
  • Auto Memory Caps Targets: HashSet of process base names to enforce caps on

🐛 Bug Fixes

  • Config Path Consistency: Fixed config editor not remembering added apps due to working directory mismatches
  • Memory Caps Not Firing: Fixed auto RAM caps not triggering due to missing global config settings
  • GPU Priority Loss: Implemented continuous reapplication to counter Windows resetting priorities
  • Thread Priority Reverts: Enhanced fast-check loop to catch and fix priority changes within 100ms
  • Process Icon Loading: Improved icon extraction from running processes with fallback to default icons
  • Config Backup Creation: Fixed backup folder creation and retention (keeps last 10)

📝 Configuration Format Changes

Global Config (ProcRipper.GCFG)

# NEW OPTIONS
auto_apply_memory_caps_on_game_launch=True
prompt_before_auto_memory_caps_on_game_launch=True
auto_memory_caps_targets=chrome,discord,steam,EpicGamesLauncher

# Per-app memory limits (MB)
chrome_memory_limit_mb=1024
discord_memory_limit_mb=400
steam_memory_limit_mb=600
steamwebhelper_memory_limit_mb=400

Process Config Format

# Extended from 4 to 5 parameters
[ProcessName.exe,Priority,Affinity,DisableBoost,GpuPriority]

# Examples
[cs2.exe,2,ALL,True,high]
[chrome.exe,0,ALL,True,low]
[FortniteClient-Win64-Shipping.exe,15,ALL,True,high]

GPU Priority Values

  • none - No GPU priority management
  • very_low - Minimal GPU access
  • low - Reduced GPU access
  • normal - Default GPU access
  • high - Maximum GPU access (games)

🏗️ Technical Architecture

Project Structure

ProcRipper v3.0.0/
├── src/
│   ├── ProcRipper/              # Runtime executable
│   │   ├── Main.cs              # Entry point (191 lines, down from 2703)
│   │   ├── Core/                # Core systems
│   │   │   ├── ConfigLoader.cs
│   │   │   ├── MonitoringEngine.cs
│   │   │   ├── CpuTopologyDetector.cs
│   │   │   ├── HotkeyManager.cs
│   │   │   ├── Logger.cs
│   │   │   └── Native/
│   │   │       └── AppPathResolver.cs
│   │   ├── Features/            # Feature modules
│   │   │   ├── GpuPriorityManager.cs
│   │   │   ├── AutoIdleManager.cs
│   │   │   ├── BackgroundProcessCloser.cs
│   │   │   ├── DwmOptimizer.cs
│   │   │   ├── NetworkThrottler.cs
│   │   │   ├── ScheduledTaskDisabler.cs
│   │   │   ├── WindowsUpdatePauser.cs
│   │   │   └── Native/
│   │   │       └── JobObjectMemoryLimiter.cs
│   │   └── UI/                  # UI components
│   │       ├── TrayIconManager.cs
│   │       └── WinForms/
│   │           ├── ProcessDetailForm.cs
│   │           ├── AddMemoryLimitFromRunningForm.cs
│   │           └── MemoryCapWarningForm.cs
│   └── ProcRipperConfig/        # Configuration editor
│       ├── Program.cs           # Entry point
│       └── ProcRipperConfig.cs  # Main GUI (2774 lines)
├── config/                      # Configuration files
│   ├── ProcRipper.GCFG
│   ├── GAME_PRIORITY.GCFG
│   └── PROC_PRIORITY.GCFG
└── Bin/Release/                 # Build output

Key Classes

MonitoringEngine
  • Main monitoring loop with multi-interval po...
Read more

ProcRipper v2.0.0-beta

Choose a tag to compare

@bdgrix bdgrix released this 04 Dec 10:54

Full Changelog: v1.1.0-alpha...v2.0.0-beta

ProcRipper v2.0.0-beta — Changelog

Release Date: 2025-12-04
Previous Version: v1.1.0-alpha


Overview

This release introduces a full architectural rewrite with hybrid CPU support, module-level optimization, and intelligent resource management.


Added Features

Hybrid CPU Topology Detection

  • Automatic P-core/E-core detection for Intel 12th–14th gen CPUs
  • Physical core detection via Win32_Processor
  • Fallback logic for non-hybrid systems
  • Model-specific heuristics for popular hybrid CPUs

Advanced Affinity Control System

  • New affinity keywords:

    • p-core
    • e-core
    • auto
    • ht on / ht off / ht only
  • Dynamic affinity calculation

  • Affinity caching with automatic invalidation

Module-Level Optimization

  • DLL-level thread priority via module=ModuleName.dll,Priority
  • Module enumeration using EnumProcessModulesEx
  • Targeted optimization for game components
  • Duplicate module application prevention

Logging System

  • Rotating log files (keeps 5)
  • Console + file logging
  • Verbose mode toggle via Ctrl+Shift+V
  • Millisecond-precision timestamps

Intelligent Monitoring

  • Smart process watchers
  • Cycle-based activation and timeout
  • Separate process and thread watchers
  • Conditional optimization

Global Hotkey System

  • Ctrl+Shift+H — Toggle console
  • Ctrl+Shift+G — Force optimizations
  • Ctrl+Shift+V — Toggle verbose mode
  • 200 ms hotkey rate limiting

Enhanced Configuration Syntax

[ProcessName.exe,Priority,Affinity,DisableBoost]
module=ModuleName.dll,Priority
ThreadName=Priority,Affinity,DisableBoost

Thread Priority Stability

  • Blacklisting for threads that revert priority repeatedly
  • Configurable MAX_REVERT_ATTEMPTS
  • Priority verification
  • Blacklist reset on restart

Multi-Interval Monitoring Architecture

  • 100 ms fast checks
  • 5 s process/thread optimization checks
  • 7-minute system scans
  • 20 s thread verification
  • 50 ms base interval

Technical Improvements

New Data Structures

Structure Purpose
_processWatcherCycles Process watcher timing
_threadWatcherCycles Thread watcher timing
_appliedModuleThreads Module optimization tracking
_disableBoostApplied Boost disable tracking
_threadRevertCounts Revert attempt counting
_blacklistedThreads Optimization blacklist

API Integration

  • GetCurrentProcessorNumberEx
  • GetLogicalProcessorInformationEx
  • EnumProcessModulesEx
  • GetAsyncKeyState
  • Extended process/thread APIs

Code Organization

  • Region-based file layout
  • Segmented constants, static fields, P/Invoke, config classes
  • Modularized, single-responsibility methods
  • Comprehensive exception handling

Fixed Issues

Resource Management

  • Thread handle leaks resolved
  • Collection cleanup improved
  • Proper process-exit cleanup

Configuration & Logging

  • More robust config loading
  • Correct log rotation
  • Fixed verbose logging behavior

State Tracking

  • Improved thread operation timing
  • Correct process watcher activation
  • Cleanup of stale thread data
  • Proper affinity cache invalidation

Performance & Stability

  • Priority revert loop prevention
  • API calls wrapped in safety checks
  • Hotkey rate limiting added
  • Correct system process activation

Configuration Updates

New Game Support (25+)

Category Games
Battle Royale Fortnite, PUBG
RPG/Action Path of Exile, Warframe, Genshin Impact, Honkai: Star Rail, Zenless Zone Zero, Diablo IV
Open World GTA5, RDR2, Forza Horizon, The Division
FPS/TPS CS2, Valorant, Overwatch, Borderlands, PAYDAY
Indie/Other Terraria, Minecraft, osu!, Trackmania, Roblox
Strategy Starcraft 2
Anti-Cheat BEService.exe, EasyAntiCheat.exe

System Process Coverage (50+)

Category Processes
Input mousocoreworker.exe, HidHide.exe
Audio audiodg.exe
NVIDIA NVDisplay.Container.exe, nvcontainer.exe
Shell explorer.exe, ShellExperienceHost.exe, sihost.exe
Browsers Chrome, Edge, Firefox, Brave, Thorium
Communication Discord, Skype, Slack, Teams, Zoom
Utilities Lightshot, ShareX, OBS
Windows Services svchost.exe
Security Windows Defender components
Peripheral Razer, Logitech, Corsair

Priority Strategy

15   TIME_CRITICAL
2    HIGHEST
1    ABOVE_NORMAL
0    NORMAL
-1   BELOW_NORMAL
-2   LOWEST
-15  IDLE
300  SUSPEND
200  TERMINATE

Breaking Changes

Configuration Requirements

  • Old configs load but require updating
  • Requires System.Management
  • More strict parsing/validation

API & Behavior Changes

  • Updated method signatures
  • New monitoring intervals
  • More aggressive exception handling
  • Different CPU/memory behavior

System Requirements

  • Administrator access required
  • Limited features on pre-Windows 10 systems
  • Hybrid CPU support optimized for Intel 12th–14th gen

Migration Notes

Upgrade Steps

  1. Back up existing .GCFG files
  2. Review new configuration syntax
  3. Test with defaults first
  4. Monitor logs in /log/

Initialization Changes

  • First-run CPU topology scan adds 2–5 seconds
  • Log directory auto-created
  • Hotkeys active immediately

Performance Characteristics

  • Reduced CPU usage overall
  • Faster thread/affinity adjustments
  • Slight increase in memory usage (5–10 MB)

Known Issues & Limitations

Platform Compatibility

  • Hybrid CPU detection may miss uncommon mobile CPUs
  • Module optimization may require VM read privileges
  • Reduced functionality on older Windows builds

Functional Limits

  • Blacklisting may be too strict for certain apps
  • Hotkey collisions possible
  • Requires admin rights
  • Some protected processes inaccessible

Performance Considerations

  • Topology detection adds startup delay
  • Heavy logging affects slow HDDs
  • Monitoring runs at normal priority

System Requirements

  • OS: Windows 7 or later
  • .NET Framework: 4.7.2 or later
  • Privileges: Administrator
  • CPU: x86-64 (hybrid optimization tuned for Intel 12th–14th gen)

ProcRipper v1.1.0-alpha

Choose a tag to compare

@bdgrix bdgrix released this 28 Nov 18:02

Full Changelog: v1.0.00-alpha...v1.1.0-alpha

Changelog

[1.1.0] - 2025-11-28

Added

  • Process-level optimization: Added support for setting process-wide priority, affinity, and priority boost settings
  • Advanced thread operations: New SUSPEND (300) and TERMINATE (200) thread priority levels for granular control
  • Dual-interval monitoring system: Fast monitoring (100ms) for priority reverts and slow monitoring (5s) for process detection
  • DWM optimization: Automatic optimization of Desktop Window Manager threads for improved desktop performance
  • Priority revert detection: Automatic detection and restoration of thread priorities that get reset by the system
  • Multi-process handling: Intelligent identification of main process among multiple instances
  • Pending thread tracking: System to track and apply optimizations to threads that appear after initial process scan
  • Process affinity masking: Support for setting CPU affinity at the process level
  • Enhanced configuration format: New configuration syntax supporting both process and thread level settings
  • Native thread priority API: Direct Windows API calls for more reliable thread priority management

Changed

  • Configuration structure: Updated from simple thread configurations to hierarchical process-thread configuration system
  • Monitoring architecture: Refactored from single-interval to dual-interval monitoring for better performance
  • Thread operation tracking: Implemented cooldown periods and operation history to prevent conflicts
  • Process lifecycle management: Enhanced process tracking with comprehensive cleanup mechanisms
  • Tray icon handling: Improved to use application's own icon instead of system shield icon

Fixed

  • Resource management: Comprehensive handle cleanup and disposal throughout the application
  • Error handling: Improved exception handling and recovery mechanisms
  • Thread safety: Better synchronization for shared data structures
  • Process access: More robust handling of process and thread access permissions

Technical Details

  • New classes: Introduced ProcessConfig class to encapsulate process-level settings
  • API additions: Added Windows API imports for thread suspension, termination, and priority boosting
  • Data structures: Enhanced tracking with _threadPriorityHistory, _pendingThreads, and _lastDwmSetTime
  • Performance: Optimized monitoring loops with separate fast and slow check intervals

Configuration Updates

  • Extended priorities: Added SUSPEND (300) and TERMINATE (200) to priority mapping
  • Enhanced examples: Updated default configuration files with process-level settings

ProcRipper v1.0.0-alpha

Choose a tag to compare

@bdgrix bdgrix released this 26 Nov 21:33
2137e27

### Everything Start From here