Map switching is done from the MFTS pin (pin 46).
The current logic allows to switch the fuel and ignition maps, as well as gives an option to choose whether to cut boost when the MFTS signal is triggered.
There are two patches:
- MFTS boost cut enabled - apply this patch if you want boost to be cut when the MFTS pin is held low (factory behavior), remove the patch if you do not want a boost cut.
- MFTS input map switching enabled - apply this patch if you want to switch to "race fuel" maps when the MFTS pin is held high (at least 6V), and switch to "normal" maps when the MFTS pin is held low.
Technically M232 has a master table with pointers to all tables. By default it is located at 0x8800, what the patch does, is switch it to 0xB800 in the fuel and ignition calculation subroutines of the ECU when the MFTS pin is held high.
It is possible to add more maps and switch more maps over to new places by adding more differences to the table list at 0xB800.
Also, because pin 39 is an ADC with a range of 0 to 12V on the ECU input, it is possible to extend the map switching to have as many maps as is needed using voltage divider multiplexing and some ECU code.