When you get to the second level of Contra III, though, the mode 7 level is weird looking, I think. I also got a lot of stuff to flow out on the touchscreen with a code about MODE7 and something else...getfx, maybe?
The reason why it looks weird is because it is using 1 extra bit for coloring. See, everyone knows about Mode 7, but what most don't know is that there are 2 types of Mode 7. The first is the normal version. The second utilizes EXTBG, making use of BG2, and uses the same data as BG1 does, but has some differences. In normal Mode 7, graphical cels are 8bpp to utilize up to 256 colors. With EXTBG, the 8th bit is a priority bit. When not set, the BG layer pixel is below certain sprites (probably all). On the other hand, if it is set, the BG layer pixel is above various sprites (but not all). The remaining 7 bits of the graphic cels are used for color reference (2^7 = 128), so it is limited to 128 colors. I built the latest commit and made a slight adjustment to the existing Mode 7 code (when accessing the palette, and added "& 0x7F" to limit it to the first 128 colors), and after a LOT of attempt (I'll explain later), I was finally able to get to Level 2, and this is what it shows.
As you can see, it is correctly colored, because it should only use the first 128 colors. If you look at your screenshot right near the bridge where the paths intersect, you'll see that above and below the overpass, the colors are correct. This is because Bit8 for the pixels on for graphic cels aren't set. Everything else is set, but the current implementation interprets that 8th bit as part of color reference, so the result is incorrect coloring. But, as you can see by my images, priority is not in use for the graphic cels, so everything is displayed above it. What does this all mean? It's simple. The capability is not implemented yet, so it is processing everything as it believes it should with what it has, which is why it looks odd.
Now, about why it took a lot of attempts. I guess
StapleButter is working on some things regarding the DSP, but unfortunately when trying to try out Contra 3, when a piece of music isn't loaded/played, the system locks up in a way where the game still runs, but it never progresses. Most of the time, I'd be stuck at the wall where the first boss should comes out but doesn't (with audio becoming mute for everything, including sfx), but still able to move around and shoot, use bombs, etc. So, because of this, I recommend no one build the current commits because you'll likely have problems playing anything.
Regarding the previous post involving missing stuff like the ground burning on Level 1 between software and hardware in v1.2, I caught this.
It appears that it's there when I'd use a bomb from way above, but it clips at that distance from the bottom edge of the bomb effect, up until it reaches the top area of the burning ground, to which the fire becomes visible (and cropped correctly by the bomb effect and it expands into it). Once the bomb effect fades, so does the burning ground. It's got to do with how the hardware version of computing windows effects is done.