Status update. I have written the network proxy code that can rewrite packets as they pass between players. At first I just implemented the packets that have a fixed position format. This worked surprisingly well. There are at least two issues. One is when players leave, one of the opcode-based packets tells the ring how to adjust itself to remove the player. In that situation, the ring sometimes gets messed up depending on who leaves. The other issue I'm not sure exactly how it arises, but sometimes the Network Info dialog (for a player other than the one to start the game) will show the first player's IP address as upstream or downstream. There is only one other opcode I have observed that contains that IP address, but I thought it was purely informational because it doesn't include a port number. Working on re-writing these opcodes to see if the problems go away. One snag is that they both appear to contain checksums and the game is not happy at all if the checksum fails!
I'll reach out to people for testing once I have something that seems to be stable. Speaking of stability -- does anyone recall if the aIndy brain had a tendency to crash a lot?