I had never really played Karnov before. I knew it as a notoriously buggy NES game that people made jokes about sometimes, but after getting to know it better I found it rather fascinating, warts and all. I wanted to know more about it!
To that end: I wrote the Karnov Inspector. This is a Lua script you can use with an emulator that will show you what the game is made of. All the level tiles and secret triggers, enemy hitboxes, et cetera.
I wrote a little bit more about how to use it on the speedrun.com forums but after opening Karnov in your emulator, drag the .lua script into the window (or open it from the menu).
One of the most interesting things about this game is how it scrolls. Anything that isn't currently on the screen more or less doesn't exist, as far as its engine is concerned, but to get new stuff to scroll onto the screen it for some reason can only add one column or row at a time. This means that any time you move diagonally, the game has to scroll first vertically, then horizontally. While it's doing this you can keep moving forward and outrun its ability to catch up with you!
There are a lot of weird consequences of this, but one of them is that it seems to make for a relatively relaxed speedrun: as long as you're ahead of the scroll, you can use the catch-up time to think and react when you need to.
If you'd like to try it out, you can download the script from Gist. There are versions for FCEUX, Bizhawk, and Mesen.
Link: Karnov Inspector