edited
Getting somewhere at last. Regardless of which avr board you select, when you see the programmers list it is a combined list of all programmers defined by all avr board manager packages. That is how Arduino has always worked but that means there can be conflict of programmer "id".
Here is an example of how the clash can happen:-
The arduino board package includes a programmer with id=avrisp and name=AVR ISP
The ATTinyCore board package has a programmer with id=avrisp and name=AVR ISP or Atmel STK500
In Visual Micro, if an Arduino avr board is selected the programmers list will include the "AVR ISP" programmer but will not include "AVR ISP or Atmel STK500". If a ATTinyCore board is selected you will see a programmer called "AVR ISP or Atmel STK500" and you will not see "AVR ISP"
It is wrong for the author of the ATTinyCore to use the same programmer ID's as the arduino avr package, eapecially because the core relies on the toolchain from arduino avr package.
I suspect that one or more of your other cores also makes the same mistake by using a programmer id that matches an arduino avr programmer. This at least explains why we have not yet seen the programmer you are using on our menus. It must be from yet another avr board package
If you no longer have the ATTinyCore installed then I expect you should select the "AVR ISP" programmer. Which uses the STK500v1 protocol alongside serial communications.
This is the official arduino.cc avr programer definition that is the "AVR ISP" programmer you see in the menus:-
avrisp.name=
AVR ISP avrisp.communication=serial
avrisp.protocol=stk500v1
avrisp.program.protocol=stk500v1
avrisp.program.tool=avrdude
avrisp.program.tool.default=avrdude
avrisp.program.extra_params=-P{serial.port}
More...
The DIY ATTiny package further confuses things. It uses the Id's of two common arduino.cc avr programmers.
avrisp.name=DIY ATTiny: AVR ISP
avrisp.communication=serial
avrisp.protocol=stk500v1
avrisp.program.protocol=stk500v1
avrisp.program.tool=avrdude
avrisp.program.tool.default=avrdude
avrisp.program.extra_params=-P{serial.port}
arduinoasisp.name=DIY ATTiny: Arduino as ISP
arduinoasisp.communication=serial
arduinoasisp.protocol=stk500v1
arduinoasisp.speed=19200
arduinoasisp.program.protocol=stk500v1
arduinoasisp.program.speed=19200
arduinoasisp.program.tool=avrdude
arduinoasisp.program.tool.default=avrdude
arduinoasisp.program.extra_params=-P{serial.port} -b{program.speed}
The mightCore only has one entry with potential conflict but so far the arduinoasisp seems to be the one that is re-defined as the same accross your board packages.
arduinoasisp.name=Arduino as ISP
arduinoasisp.communication=serial
arduinoasisp.protocol=stk500v1
arduinoasisp.speed=19200
arduinoasisp.program.protocol=stk500v1
arduinoasisp.program.speed=19200
arduinoasisp.program.tool=avrdude
arduinoasisp.program.extra_params=-P{serial.port} -b{program.speed}
Is there another package that you have installed that you didn't list because we have not seen the "Atmel SDK500" programmer in any of the package urls you posted?? If not then what is in you documents/Arduino\Hardware folder?
update: There are plenty of alternative STK500 programmers in the list for you to chose from but according to this it mmust be STK500v2
https://shop.myavr.com/?sp=article.sp.php&artID=200006