If anyone is interested in some similar research, I did a video writeup using very similar techniques for reversing the graphics format of a cutesy platform game - https://www.youtube.com/watch?v=e0x7KU4wLGw
Reading the assembly language is what many (perhaps most?) people would do at that point. But not everyone is as comfortable with reading assembly, and I wanted to show that a lot can be done without taking that step.
Also, "easier" is a relative term. It was far, far easier for me to examine the data files sitting comfortably in front of my Linux box, than to try to pull together a decent debugging setup inside of a dosbox before making any headway. There's always more than one way to do it.
That guy is a mad genius. It's great knowing there are people who can figure out a two-byte compression scheme (and even know what it is to begin with) by just looking at the binary dumps.
Actually, I have been biting at the bit to get into reverse engineering after discovering some of Chris Domas' [0]. However, my hand has been stayed simply by a lack of somebody to learn from and nerd out with on the topic. Would you be able to share any communities you are aware of in this regard?
Really though, awesome article. Thank you for taking the time to write and share it!
When it comes to learning these sorts processes, there is a hierarchy of related phenomena required to succeed:
motivation > intuition (experience) > patience/persistence/determination > skill (aptitude) > tools
When people are learning to program, I always tell them that regardless of their preference between books, videos, classes or peyote, the most important thing they need to persevere is a problem or project that they passionately want to see through to the end. This urgency translates directly to giving a shit, which is something I believe is critically missing when implementing a TODO clone in language framework X.
My hierarchy above can be viewed from another lens: in what order does having ample supply of this trait open the aperture for all of the others that follow?
Being really patient and having access to Stack Overflow can make up for a lack of skill. Doing something for a long time can occasionally make short work of a project if you see the answer quickly. However, nothing else in the chain matters if you aren't urgently motivated to reach the conclusion. When you feel genuine need to see something through, everything else clicks into place.