A small update
31 Mar, 2025
It's been a while since I've done one of these, huh? I suppose I should update y'all on what I've been doing since I stopped developing YAMDCC.
OpenBootCamp updates
Contrary to what I wrote on the project's README four months ago, I made a few updates to OpenBootCamp:
- I added a GUI editor for most of the OBC service's config (except for the fan control feature - this will take some more work), and merged the old Install Manager into it as a separate dialog (accessible from the `Debug` tab > `Install Manager` button on the right side). I plan on finishing the new Settings app at some point, although this probably won't be for a while.
- The background blur of OBC's overlays (shown when adjusting brightness or ejecting the optical drive) can now be forced on or off. Note that background blur only works on Windows 10, and has not been tested under Windows 11 (earlier Windows versions do not support the used API).
- Some bugs with the Install Manager's driver (un)installation logic was fixed. One of these being falsely detecting `KeyManager.sys` even if it doesn't exist (almost certainly due to the feature introducing this dialog being somewhat rushed and untested, due to not having supported hardware).
- Ejecting the optical drive using the keyboard should no longer hang the OBC service until the disc actually ejects (this is noticable when the inserted disc is being/was recently read from).
- Starting and stopping the OBC service from the Install Manager should be faster, and progress dots were added for visual feedback.
- Miscellaneous bug and crash fixes (notably an ObcOverlay crash when the config isn't created yet).
Garmin Update reverse-engineering
A Gadgetbridge developer recently pointed out an interesting Garmin API, and how to fetch available updates for a Garmin watch from it. Using this information, I've started work on a utility to automate downloading these available updates to your watch. No ETA, as I'll need to wait for the next watch firmware to release to finish and test the program, but then I'll probably end up releasing it at some point.
Other stuff
- All of my blog posts are now organised by their year of publication, and all except the most recent blog posts have been removed from the blog homepage. To access them, see the Archive links at the bottom of the blog homepage.
- YAMDCC, OpenBootCamp, and RefreshRateTuner now show icons on their respective Codeberg page. Yes, it took me this long to figure out how to add icons to a Codeberg repository.
- I wrote my first "proper" WPF app (apart from an unreleased re-write of YAMDCC's updater app in WPF): a utility to mirror files from one drive (or directory) to another, including file verification. I don't plan on releasing it as of writing, but who knows - maybe I'll change my mind in the future.
- My university course started up again a few weeks ago. Unfortunately my mobile app development class wasn't what I expected; I thought we would be doing (native) Android app development, but instead they opted for a framework called Expo (which allows writing cross-platform apps for iOS, Android, and web browsers). Don't get me wrong, Expo has been interesting, but I still prefer writing raw HTML/CSS/JS for now, and I wanted to learn more about native Android development so I can contribute to an open-source project that I use.
- I started writing programs in C++ for a different university class. C++ is a nightmare to debug, and I hate how it just allows things that C# (or most other languages) don't, e.g. out-of-bounds array access, and how undescriptive the errors (if it even gives one) are.