Here I am, back on my bullshit again.
Charge weapons (particularly the newer ones, like Break Dash) cycle through a color pattern like so:
secondary = primary, primary = black, black = secondary
secondary = black, primary = secondary, black = primary
secondary = secondary, primary = primary, black = black
There's a handful of inconsistencies among the older weapons, though, and here's where.
Among the translations defined in COLORS.acs, it's all in the MM7 stuff. For Wild Coil and Noise Crush, things are reversed. It's just a matter of swapping translations around, which I have done here.
CreateTranslation (NOISECRUSHCRG2, 192:192=61:61, 198:198=0:0, 0:2=204:204, 5:8=204:204, 243:247=204:204);
CreateTranslation (NOISECRUSHCRG3, 192:192=0:0, 198:198=204:204, 0:2=61:61, 5:8=61:61, 243:247=61:61);
CreateTranslation (WILDCOILCRG2, 192:192=238:238, 198:198=0:0, 0:2=109:109, 5:8=109:109, 243:247=109:109);
CreateTranslation (WILDCOILCRG3, 192:192=0:0, 198:198=109:109, 0:2=238:238, 5:8=238:238, 243:247=238:238);
Super Adaptor, on the other hand, requires a little more tweaking, because it uses a completely different pattern from anything else, for some reason. I have corrected this as well.
CreateTranslation (SUPERADAPTORCRG2, 192:192=42:42, 198:198=0:0, 0:2=4:4, 5:8=4:4, 243:247=4:4);
CreateTranslation (SUPERADAPTORCRG3, 192:192=0:0, 198:198=4:4, 0:2=42:42, 5:8=42:42, 243:247=42:42);
The other trouble spots are in the HUD definitions (TEXTURES.HUDS) for Arrow Buster, Noise Crush, Wild Coil, and Homing Sniper--all of them reversed. I have corrected them all below:
Sprite CHBUI0, 116, 96 {Offset -184, -94 Patch BUSTB0, 0, 0 {Translation "192:192=198:198", "198:198=247:247", "0:2=192:192", "5:8=192:192", "243:247=192:192"}}
Sprite CHBUJ0, 116, 96 {Offset -184, -94 Patch BUSTB0, 0, 0 {Translation "192:192=8:8", "198:198=192:192", "0:2=198:198", "5:8=198:198", "243:247=198:198"}}
sprite NCRUM0, 116, 96 {Offset -184, -94 Patch BUSTB0, 0, 0 {Translation "192:192=61:61", "198:198=247:247", "0:2=204:204", "5:8=204:204", "243:247=204:204"}}
sprite NCRUN0, 116, 96 {Offset -184, -94 Patch BUSTB0, 0, 0 {Translation "192:192=247:247", "198:198=204:204", "0:2=61:61", "5:8=61:61", "243:247=61:61"}}
sprite WCOIH0, 148, 80 {Offset -202, -103 Patch HSPRE0, 0, 0 {Translation "192:192=238:238", "198:198=0:0", "0:2=109:109", "5:8=109:109", "243:247=109:109"}}
sprite WCOII0, 148, 80 {Offset -202, -103 Patch HSPRE0, 0, 0 {Translation "192:192=0:0", "198:198=109:109", "0:2=238:238", "5:8=238:238", "243:247=238:238"}}
Sprite HSNII0, 116, 96 {Offset -184, -94 Patch BUSTB0, 0, 0 {Translation "192:192=230:230", "198:198=247:247", "244:247=192:192"}}
Sprite HSNIJ0, 116, 96 {Offset -184, -94 Patch BUSTB0, 0, 0 {Translation "192:192=247:247", "198:198=192:192", "244:247=230:230"}}
Remarkably, Super Adaptor's HUD has used the correct pattern from the beginning, so there's no need to deal with that.
UPDATE: I discovered both of Proto Buster's charge patterns have some jank inconsistency.
The full charge has an additional two frames that were not incorporated (gold, purple, black, purple, repeat) on top of the HUD not matching the skin, and the mid charge has some inconsistency between the HUD and the color translations (3 purple frames on the HUD, 1 purple frame on the skin, when both should have 2). I corrected these myself, which you can try out
right here.
With these discoveries, it may also be worth updating the Proto Man actors used in boss fights and cutscenes.