Comments in passing,
which should be considered anecdotal despite being able to provide reference material for all of them:
1. OP cited material is here:
https://wiki.superfamicom.org/spc700-reference#toc-162. Official documentation circa 1994 does not mention this problem (either in description/behaviour, Programming Cautions, or subsequent Errata documents)
3. Official SPC700 loader routine v1.1 circa 1994 uses 16-bit writes to both $2140-2141 and $2142-2143
4.
Anomie's spc700.txt does not mention this problem, but does have this when describing SPC700 $F4-F7 (which correlate with $2140-2143), but I cannot tell if this is describing potentially the problem. I suspect not, as a 16-bit write to $2140 should write the lower 8 bits of A to $2140, followed by the upper 8 bits to $2141; I can't see how this description would end up writing something to SPC700 $F7:
Quote:
If the SPC700 writes to an output port while the S-CPU is reading it,
the S-CPU will read the logical OR of the old and new values. The
exact cycles during which the 'read' actually occurs is not known,
although a good guess would be some portion of the final 3 master
cycles of the 6-cycle S-CPU memory access. Possibly the same thing
happens the other way around, but the details are unknown.
5. nocash's fullsnes document "Uploader" routine says
Word[2142h]=dest_addr which looks to me like a 16-bit write to $2142-2143. I can't tell if this is harmless or harmful (I suspect harmless?), because
the same document says (emphasis mine) for $2140-2143:
Quote:
Caution: These registers should be written only in 8bit mode (there is a hardware glitch that can cause a 16bit write to [2140h..2141h] to destroy [2143h], this might happen only in some situations, like when the cartridge contains too many ROM chips which apply too much load on the bus).
If this is a real bug, then the fullsnes document should be a bit more clear. Example rephrasing and punctuation clean up:
Caution: There is a hardware glitch that can cause a 16bit write to [2140h..2141h] to destroy [2143h]. This may happen in some situations, such as when the cartridge contains too many ROM chips thus applying too much load on the bus. To alleviate this problem, only use 8-bit writes to 2140h..2141h.
In general, sounds to me like more analysis may be needed at the hardware level, especially if it's reproducible. "Too many ROM chips that apply too much bus load" sounds kinda like voodoo. But as I've said time and time again, I'm not a hardware guy.