I think I misunderstood your point when I answered you yesterday. What you are suggesting is that the combinations of inputs be semantically dissimilar to the individual inputs by themselves. Input “A” would not share any overlap with input “A + B” for example.
The only issue I see with that idea is it would require devising something which converts inputs to columns but intentionally scrambles any semantic similarities (versus preserving them like the spatial pooler). Given an input with 50% similar active cells compared to another input, the goal would be to generate a new, reproducible representation that had no overlap with the other input.
Of course in the case of Super Mario Bros, there are only 64 possible different input combinations (if we ignore “Start” and “Select” buttons, and the Player 2 controller), so they could probably just be built out manually. That would probably be the simplest solution for a system that plays NES games specifically, but in general I like to think about solutions that aren’t so bound to a specific problem (one of the reasons I got hooked on HTM).
Another way would be to encode “A that occurs simultaneously with Left Arrow” as different set of cells in the “A” columns than an “A that occurs by itself” or an “A that occurs simultaneously with B and Left Arrow”. To accomplish that, you would need to use a something like the system I talked about in my thread Learning a collection of features where order doesn’t matter. I think I’ll look into this idea as well… seems like it could work.