I am developing an NES game with a control mapping for the standard NES controller and a control mapping for the Super NES Controller. The game detects a Super NES controller if the thirteenth through sixteenth bits read from $4016 are 0 and the seventeenth through twenty-fourth bits are 1. The latter is intended to allow distinguishing a Super NES controller from an NES controller connected through an NES Four Score or NES Satellite accessory.
My manager has informed me that the game I am developing for him fails to detect the Super NES Controller on his retroUSB AVS console, instead detecting it as an NES controller. The "Serial watch" mode of allpads (
release;
source;
thread) gives this readout with the Super NES controller in port 2:
Code: Select all
1-16: 0000 0000 0000 0000
17-32: 0010 0000 0000 0000
Bits 17 through 24 indicate that the AVS is reporting a Four Score to the game. My manager does not know how to turn off Four Score functionality in the AVS, and I personally lack an AVS on which to test, with preorders expected to ship in third quarter 2023 (over 18 months from now). I have only an authentic NES, on which my detection routine works as expected. What instructions should I give my manager as to how to disable the Four Score on an AVS so that the extra buttons of the Super NES controller can work?