Hi,
The RVswd is not fully documented and has not been completely reverse engineered.
Perigoso on github did a part of the job, and i replayed a capture of a wchlink until it worked.
What has been RE is the protocol to talk to the WCH link, and then the WCH link converts to RVSWD.
My RE is not 100% correct/complete, but "good enougth", i.e. it works.
and yes, swindle works on a RP2040, GD32F303 and CH32V3XX so you can use a CH32V30x to debug another one
There is a small kicad PCB in the kicad folder to do just that (use a CH32V303RCT6 to debug CH32V3xx)
I like a lot the CH32V3XX family (especially the CH32F303RCT6) . It is fast, the FPU & fast interrupt helps a lot, mostly compatible with STM32F103 and cheap.
It has a couple of annoying quirks :
There is no watchpoint (i.e. break on read/write/access) (no breakpoint at all on the CH32V2xx, unusable)
The RVSWD protocol is a bit slow. If you deal with huge executable uploading them through DFU then debugging it is faster.