Commit Graph
750 Commits
Author SHA1 Message Date
Frog fb778bddfa Fix for SteamCMD Migration
- Fix for SteamCMD Migration: Creates SteamCMD directory before trying to start the download (Woops, kinda need to do that.)
- Ensures the application migrates SteamCMD files fom the legacy location C:\ProgramData\Creamlnstaller\ to C:\ProgramData\Creamlnstaller\SteamCMD\
2026-06-21 15:51:43 -07:00
Frog 0478088442 Scan and Logging Performance Improvements
- Parallelized Steam ACF and DLC scanning
- Replaced lock-based logging with async channel to avoid UI locks during parallel thread calls.
- Added MD5 cache during file checks to reduce redundant I/O calls
2026-06-21 00:30:04 -07:00
Frog c4aaab8bdc Improve Game/Library Scan Logging
- Add per-platform library scan timing and per-game detection logs
2026-06-18 01:10:01 -07:00
Frog 34b608207c ReadME Updates
- Add information about proxying DLLs and finding the correct proxy DLL for a game.
- Adjust the FAQ section into an expand/collapse section. (Surely you'll read it if you have to expand it right?!)
- Add additional flags to the false positive section
- Cleanup some of the AI shit. (Yes, I ran the readme through AI, it made the formatting better for sure. ¯\_(ツ)_/¯)
2026-06-18 00:15:41 -07:00
Frog 36623eec09 Improve Game and DLC Scanning Performance / Reduced Steam API Retires
- SteamCMD: Changed output reading from one character at a time to buffered reads, fixing a stderr deadlock issue and making the process much faster and more responsive to cancellation.
- DLC detection: Eliminated a busy-wait loop that was polling every 200ms on a background thread while waiting for game data to arrive. Now uses proper async signaling so the thread is freed up entirely.
- HTTP retries: Previously every Steam API error was retried up to 10 times with delays, even for "403 Forbidden" errors that will never succeed. The scanner now gives up immediately on permanent errors, preventing up to 90 seconds of wasted retries per failed app, and avoids triggering rate limits by hammering the API on doomed requests
- Replaced fixed 1-second waits with smarter retry timing that waits longer after each failed attempt and adds a small random delay to reduce API requests. Also reduced the maximum number of retry attempts from 10 to 3 for temporary network errors.
2026-06-17 13:44:26 -07:00
Frog 6ecab7a4d3 Correct Progress Label Being Slight Cut Off
- Increases the size/position of the progress label so the text doesn't get cut off, also makes it somewhat easier to read.
2026-06-17 01:06:12 -07:00
Frog c33537f549 Improvements to Test Game Form
- Adds the ability to Test Ubisoft Games > Has a search function with a "public" API.
- Remove the DLC section from Steam Game Test Window, never really going to use this as originally the idea with test games was primarily to test DLC resolution.
- Ensure the game name is cleared whens witching between test platforms
- Proper cleanup of test data if the Clear All Tests button is clicked, ensures test games get cleared from the selection list as well.
2026-06-16 01:50:04 -07:00
Frog a264828875 Additional Label/Badge Colors for DLC Unlockers
- Adds a badge/color for ScreamAPI (Epic Games)
- Adds a badge/color for UPlay Unlocker (Ubisoft Games)
- Adds a badge/color for Koaloader (MISC Injection Methods)
2026-06-15 23:19:44 -07:00
Frog 4aa6756140 Improve installed.json
- Serialize Platform and Unlocker as strings rather than just displaying an integer in installed.json so it's easier to distinguish.
2026-06-15 22:20:23 -07:00
Frog 6156272d1b Skip scan dialog on initial launch when DLC unlockers are already installed
- On initial launch, skip the re-scan window if previously installed DLC
  unlockers are detected and load saved games directly instead
2026-06-15 21:42:03 -07:00
Frog d7290e33be Make the Debug Window Log Again
- Restore the debug window logging and ensure it's nice and colorful.
2026-06-15 03:54:21 -07:00
Frog 60487d5313 Create Cache Directory in ProgramData
- Created new Cache folder in Program Data
- Relocated Appinfo to Cache folder
- Relocated installed.json to Cache folder
2026-06-15 03:22:10 -07:00
Frog 6eef5e836a Relocate SteamCMD
- Relocates everything related to SteamCMD to C:\ProgramData\CreamInstaller\SteamCMD
2026-06-15 03:15:09 -07:00
Frog d9e1f0cb08 Remove Double Try
- Remove shitty double try code, cleanup can happen in a single try.
2026-06-15 03:02:51 -07:00
Frog 4f5cd45642 Cleanup Cream-Steam.log
- Ensure we cleanup Cream-Steam.log
2026-06-15 03:01:57 -07:00
Frog 0c3edf1ee7 Further Enhancements to Recall Games Installed With DLC Unlockers
- Rename JSON Proxy field to "Proxy DLL Name" and always store the resolved
  name instead of null for default convention
- Add DetectInstalledProxy() to find proxy dlls winmm/winhttp/version.dll
- Fixes to ensure all detected unlockers are persisted in installed.json on scan so pre-existing unlockers are tracked even if not installed via CreamInstaller
- Restore proxy and extra protection state from saved records for both
  scanned and previously scanned games on reload
- Detect proxy DLLs from disk for previously scanned game reconstruction
2026-06-15 02:55:24 -07:00
Frog 121236632c Recall Games With Installed DLC Unlockers
- Checks if CreamAPI/SmokeAPI/ScreamAPI are present in a game directory. If so, ensures it's stored in installed.json so we recall all games with DLC unlockers that have been detected, even if those DLC unlockers were not installed VIA CreamInstaller.
2026-06-15 02:07:46 -07:00
Frog c0763cff92 Logging Improvements
- Indicate why a blocked game may be blocked/skipped
- Indicate which DLL is missing for a game if we're looking for it
2026-06-15 00:20:23 -07:00
Frog d52c73d79a Further Logging Additions
- Updates further logging lines that were using UTC to instead use current system time.
- Added log lines to include total time for detecting games and DLC during library scan
- Added log lines for why a game may not be processed.
- Added log lines to indicate how many game were detected across all libraries.
- Corrects log line where the game-scan.log was incorrectly reporting double the amount of selected games
2026-06-14 23:58:27 -07:00
Frog d4775d2629 Adjust Logging Time
- Adjust logging time to use system time instead of UTC
2026-06-14 22:53:04 -07:00
Frog c775215be2 Adjustments to New Logging
- Slight adjustments to where SteamAPI calls go in logs
- Renamed cream-steamcmd log to just cream-steam.log
- Added prefixes for SteamCMD / SteamAPI commands to logs
2026-06-14 02:13:29 -07:00
Frog dea8a24c30 Improve Logging / Add Forced Proxy for Steam Games with no SteamAPI DLL Closes #28
- Adds logic to allow for a Steam Game with no SteamAPI dll to use forced proxy methods. (This is not guranteed to work and thus these games are tagged with the "Proxy Only" platform tag.
- Adds tooltips, and displays them for Unsupported/Proxy Only games if hovered with the mouse.
- Adds improved logging to the application, breaks logs into 3 primary logs: game-scan.log, cream-steamcmd.log and CreamInstaller.log
2026-06-12 23:56:49 -07:00
Frog 55120e4640 Additions to .gitignore
- Additions to .gitignore
2026-06-12 22:43:10 -07:00
Frog eb075a32db Correct Generated JSON for UPlay Games Fixes #27
- Correctts the invalid comma in the generated JSON for games that utilize the UPlay unlocker.
2026-06-12 00:43:03 -07:00
Frog 30bd1035b2 Replace GoTo Statement with While Loops
- Pretty basic code adjustment, changes GOTO statements to while loops.
2026-06-11 22:31:16 -07:00
Frog 0dbd35ed0c Improve HTTP Client Manager / Improved Debug Error Messaging
- Fixed issues with how HttpClient was being created and managed, which could lead to socket leaks and connection problems. Now the app reuses a single shared HttpClient instead of creating new ones repeatedly, and properly manages the underlying connection handler.
- Improved connection handling with better timeouts, safer pooling settings, and better handling of network errors and DNS changes.
- Improved Debug Error messaging for failed SteamCMD querys
2026-06-02 01:13:11 -07:00
Frog 668463f687 Improve Potential Async Void Crash Risks
Added try catch for async handling across the application to reduce crash risk from async void methods. Added proper error handling so exceptions are caught instead of crashing the app.
2026-06-02 00:31:35 -07:00
Frog 69d29d6863 Fix: Rare Potential Crash/Null Reference
- Fixes a rare issue where the application could crash if the same window was called by multiple parts of the program at the same time. This could cause unexpected errors or crashes.
2026-06-01 23:44:09 -07:00
Frog 94bec38bd0 Recall Installed DLC Locker for Games / Labels for DLC Unlockers / Additional Extra Protection Changes
- Added method to remember the games you've installed so they don't need to be reselected.
- Added labels for to display if CreamAPI / SmokeAPI DLC Unlockers are installed
- Logic to ensure the Extra Protection checkbox displays at the appropriate time
- Added logic to read Extra Protection state from cream_api.ini when CreamAPI is detected
2026-06-01 02:46:47 -07:00
Frog 66cf72faeb Add Extra Protection Option for CreamAPI Closes #21
- Adds the ability to enable ExtraProtection for CreamAPI, this is required for games that check the integrity of the steam_api.dll

Related Work Items: #2, #21
2026-06-01 00:01:59 -07:00
Frog 54592230c3 Increment App Version
- Increase app version to 5.0.2.3
v5.0.2.3
2026-05-27 01:33:35 -07:00
Frog 34cb3b862c Fix Light Mode Selection Bar
- Adjusts the selection bar so it properly selects the whole field.
- Adjusted the color of the selection bar to be a lighter blue so text is easier to read.
2026-05-27 01:32:24 -07:00
Frog 8040e6bcdb Fix Dark Mode Expander / Selection Bar
- Fixes missing expander in dark mode, which occured when I was fixing the checkboxes. (Woops)
- Fixes the selection bar in dark mode, now properly selects the proxy button as well instead of being cut off. (Light mode still looks like shit though.)
2026-05-27 01:28:28 -07:00
Frog 593f396c54 Add Test Game Generator for Steam and Epic
- Added Test Game Generator to the Debug window for creating fake installed game entries for testing
- Updated ThemeManager to properly theme ListBox controls in dark mode
- Labels now use transparent backgrounds for better appearance
2026-05-27 01:20:03 -07:00
Frog 2f993bfe3b Updated Preview Image
- Updated preview image to Dark Mode
2026-05-26 02:41:03 -07:00
Frog e9f8222d8e Increment App Version
- Increase app version to 5.0.2.2
v5.0.2.2
2026-05-26 02:29:48 -07:00
Frog 68842aad9f Logging Infrastructure / Normalize Paths
- Added base logging infrastructure
- Create scan log during library/game scan in %ProgramData%\CreamInstaller\scan.log
- Normalize Steam library paths (libraryfolders.vdf) using Path.GetFullPath + ResolvePath to handle slashes, casing, and drive changes
- Diagnostics.ResolvePath: wrap GetFileSystemInfos in try/catch and guard against empty results to prevent IndexOutOfRangeException (May assist with issues on slow or intermittently accessible external drives)
2026-05-26 02:11:15 -07:00
Frog 1d5dc4ac8c Increment Version
- Increase version to 5.0.2.1
v5.0.2.1
2026-05-25 16:18:01 -07:00
Frog 31ca8a947f Fix: CustomTreeView Checkbox Themes
- Further adjust the Proxy/CustomTreeView checkbox theme, doesn't perfectly match the top settings checkboxes, but it's good enough.
2026-05-25 14:57:38 -07:00
Frog 558612f098 fix: dark mode checkboxes in CustomTreeView
- Added ThemeManager.DrawDarkCheckBox to render dark-themed rounded checkboxes
- Fixed TreeView and Proxy checkboxes showing white backgrounds in dark mode due to CheckBoxRenderer drawing opaque system-themed glyphs. > Still need to fix the actual checkmark to match the top checkboxes.
- Disabled DrawDefault for checkbox tree nodes in dark mode and manually draw the row background, text, and checkbox glyphs.
- Checkbox glyph sizing now uses CheckBoxRenderer.GetGlyphSize for proper DPI scaling. (Probably)
2026-05-25 14:54:51 -07:00
Frog b7067c2621 Change Game Filter Text to PlaceHolder Text
- Removed the game search label in favor of textbox placeholder text.
 - Added methods to ensure the placeholder text renders properly
- Added inline comments to explain what NativeMethods is for
2026-05-25 02:35:50 -07:00
Frog fe55efc072 Added Game Search / Filter When Scanning Games Closes #15
- Added a "Game search:" label and text box above the game list in
  SelectDialogForm, allowing users to filter the program/game list
  by name in real-time (case-insensitive substring match).
- Added TextBox theming support to ThemeManager for both dark and
  light modes, ensuring the new search field conforms to the active
  theme.
2026-05-25 02:18:56 -07:00
FrogandGitHub 39097c27ef Add Dev CI Builds
- Added CI action workflow for dev branch
2026-03-23 23:55:06 -07:00
Frog 3ba4747be3 Increment Version 5.0.2.0
- Increment version number to 5.0.2.0
v5.0.2.0
2026-03-17 11:24:03 -07:00
Frog 322490d0b2 Additional Changes to Correct Null Exception for #12
- Additional changes to prevent Null Exception when catalog mapping property is null.
2026-03-16 22:58:00 -07:00
Frog 3dae7508f0 Merge branch 'main' of https://github.com/FroggMaster/CreamInstaller 2026-03-15 03:15:25 -07:00
Frog 8f8e893e84 Fix NullReferenceException in EpicStore See #12
- Fix a NullReferenceException that could occur when the Epic GraphQL API returns a partial response with missing fields (Data, Catalog, SearchStore, or CatalogOffers).
2026-03-15 03:15:17 -07:00
FrogandGitHub 0cec730c1e Update README.md
- Additional clarification about DLC files because people apparently can't fucking read.
2026-02-10 12:15:52 -08:00
FrogandGitHub df7dc0e019 Update create-release.yml
- Added generate_release_notes > Should automatically add the full change-log in the release description.
2026-01-31 03:09:58 -08:00
Frog 455a290051 Increment Application Version
- Version increased to 5.0.1.9
v5.0.1.9
2026-01-31 03:03:13 -08:00