Another thing you might want to not is that sometimes values aren't on the byte division as seen in hex editors, or even your program).
For instance, when I figured out how to view held money on Mystery Dungeon Explorers of Sky (here), I found that it was stored something like this: yyXXXXXX XXXXXXXX XXyyyyyy, where X (a bit) is part of held money and y is irrelevant and probably means something else.
When you were looking for 0, 1, 2, or 3 in the bytes, you are almost doomed to failure. You must convert the hex to binary and look for what you want in the string of binary. If you look here, you'll find my very old and buggy program which should do a similar thing to yours, but if you look around, you'll find a tool that will convert hex to binary (and then add an extra byte of 0 at the end, watch out for that; also it doesn't pad the left with 0's so you'll have to manually do that). Hopefully that will help you once you've found out the general area of what you're looking for.
Also, I recommend you use HxD in addition to your tool and mine. It can determine the difference between any two files. (Also, the hex editor in mine is fail, so you'll have to use HxD to get the hex to convert to binary).
Since it seems that my tool is still useful, I might reprogram it in the future, removing the annoying bugs.