The screen changes colors a couple of times during loading, but after the tape ends, there is no program.
I wonder it that's caused by the same problem that I identified before, regarding the polarity of the cassette output. Maybe the polarity of the cassette INPUT is also inverted?
Try to change the "<" sign below into ">" or ">=" and see if you can successfully LOAD the .wav files generated by BIN2WAV.EXE.
345 if (cassette_input(state->cassette) < +0.0) data &= 0x7f;
Edit: On a second thought, maybe you should try "<=" too.