Mastodon Verification Link Blog – Sam Seltzer-Johnston

Jul 31, 2016

Registry woes

You know how CCleaner tells you to make a registry backup when you cleanup bad registry keys? Well I know why now. I found that one in a million case where you can cause an important subsystem to self-destruct.

By accident. Totally by accident. By doing things that are perfectly reasonable on their own. With no knowledge whatsoever of each others’ existence, three programs managed to pull off a concerted effort to explode some of the most important functions in the context menu. That is, anything that had the word “Open” in it.

Didn’t know how for a while, but I recently replicated the conditions and isolated the problem to being a combination of Alcohol 52%, Malwarebytes, and CCleaner in that order.

Alcohol 52% is the only CD emulator I’ve managed to come by that completely bypasses DRM on super old PC games without any exceptions. It succeeded where DAEMONTools and WinCDEmu could not. It has one tiny problem. More like a blemish. Okay turns out it wasn’t really a blemish. It installs a little piece of bloatware that behaves a lot more like an innocuous virus, if such a thing can exist. It’s called Smart File Advisor. I know, even the name sounds sketchy. It gives you access to a database that checks file extensions and limited file content to identify programs that can open it. It’d be useful if it didn’t clutter the context menu and *cough* replace your “open with” feature with an ugly UI gateway to the original Windows feature. Okay, it’s a pain, but so far harmless.

Well, that’s when Malwarebytes came along and said “yo bra, that smart file advisor guy is bad news, but don’t worry I got cho back” and I let it do its thing. So far so good.

Except… Well except that broke everything in that moment, but I didn’t realize it yet. If I’d tried opening an unknown file type then, it would have  given me a Windows error. But no, that just sat there and festered - waiting to be an issue for a few days.

That’s when CCleaner put the nail in the coffin. It saw that the registry key set for unknown file types (which includes open with and set default program) still pointed to Smart File Advisor’s bloatware, which no longer existed. Normally removing keys like that is harmless, but not in this case. In this case, removing those caused my context menu to look very, very strange. Also pretty much every command that included the word “open” was fried.

Normally I keep backups, but this was one of those rare occasions that I didn’t. Bad on me. Won’t happen again. I’ve learned my lesson.

Thankfully some other unfortunate soul on the internet had experienced a similar issue and provided a registry file for everyone use. I made sure to look at its contents first and it checks out. Simply re-adds the default keys for opening unknown file types. Here’s their blog post: http://www.winhelponline.com/blog/open-with-choose-another-app-error-not-associated-windows-10/

Totally fixed it - like magic. Moral of the story is keep registry backups when CCleaner asks you. They don’t take much space, and they can help you (or someone knowledgeable) isolate problems like this.

The other moral of the story is if you hate Smart File Advisor, it’s totally legit to use Malwarebytes, CCleaner, and that registry fix to safely remove it from your system without upsetting Alcohol 52%. I’ve done it on two computers now. Magic.


Apr 01, 2015

Radiosity

Recently I’ve been making a Radiosity simulator for my Advanced Rendering and Modeling course at Michigan Tech. It’s been an arduous process, riddled with bug crunching and rounding error, but I’m fairly pleased with the results so far.

image

Those white edges on the bottom of some surfaces will go away eventually. It’s partly because I’m doing this with a low patch resolution, but it’s also an edge-case having to do with how I detect neighboring patches.

It really helped me to make debugging tools for this. Here are some that were particularly helpful.

Normals

image

Patches - I’m working on getting it to highlight patches in a more distinct pattern than rows. It’s a problem with how I intitially decided to store patches.

image

Hemicube cells

image

Hemicube cell trace: hit positions

image

Hemicube cell trace: hit patches

image

Hemicube cell trace: rays

image

One of the big “gotcha” moments was forgetting to normalize the delta form factors on my hemicube. Inevitably they won’t add up exactly to one, so you need to divide each delta form factor by their sum to normalize it, ensuring we don’t have more energy escaping the scene than absolutely necessary.

I'm seriously proud of myself for making such a great set of debugging tools for this.


Mar 20, 2015

Adventures on Windows

I recently started porting some OpenGL code from Linux to Windows/MinGW, and let me tell you, trying to compile/link things on Windows without an IDE is a real pain compared to Linux. 

Why am I doing this you ask? Probably because I hate myself, but it’s actually part of a directed study project. Really, I promise.

Anyway, I’ve got a little project that spawned out of this painful process. Something I made a while ago using ncurses. A tiny text-based game engine. I haven’t given it an official name yet, so it’s just called TextEngine. It now uses FreeType and OpenGL for rendering, but I’m going to go back and add termbox support (because screw ncurses) for those who want to use it as a true text-based game engine.

It’s my first time making a game engine from scratch, so it’s more of a project to help me learn game engine architecture. It's on GitHub if you’re interested.

https://github.com/sbseltzer/TextEngine

I even added a little tutorial in the readme that might shed some light on porting such applications for other developers. I had to scour the web for information on getting FreeGLUT and GLEW to compile and link properly, so now you don’t have to.

Enjoy! :)



Feb 19, 2015

Legacy

I was recently added to the DPS Games team to work on their flagship title, Legacy. It’s a Roguelite (yes, lite) RPG game. It features a procedurally generated, persistent world.

image

When you die, you die for good. However, you may continue on as a descendant of your bloodline, where you will be remembered for your ancestors deeds or misdoings.

image

Legacy is greenlit on Steam and is projected to start early access in a few months.

IndieDB Page


Newer
7 / 9