Connecting to the Server - GameProgressive/GameSpyEmulator GitHub Wiki
There are two possible ways to allow a comunication between RetroSpy and a game.
You should always go for the second route, since the network configuration won't be touched and any issue with the game regarding the connection will be fixed by a patch or an update of the libraries.
NOTE: An official test server is running under this ip: 207.180.252.24. The test server is running a DNS server. Currently there is no public domain, means that the only route is DNS Server with No-SSL patches. The RetroSpy Server could soffer of unexpected reboots or downtimes, since each new update to the code will be executed on that machine.
1. DNS/Host Server
This method uses a DNS server, or change the hosts file to point the domain "gamespy.com" or any similar domain used in the game to a newer IP. When the domain will be resolved by the system, it will use the IP specified in the DNS server configuration or the hosts file.
✔️ Pros
- No need to patch the game. This is particulary usefull for devices that can't edit the game file (such as an iPhone or a Nintendo DS), it won't even break any integrity check.
- Easier to setup.
❌ Cons
- No security when the data is exchanged between the client and the server. Since we're pointing to an existing domain, the certificate could not be authenticated, means that there is no SSL/TLS support.
- Still requires patching the games that uses SSL/TLS in order to point them to non-SSL domain.
2. Game Patching
This method changes the application executable or, the libraries that will interact with it to point "gamespy.com" or any similar domain to a new domain used by RetroSpy or any self-hosted service.
✔️ Pros
- SSL/TLS support. Since we're pointing to our own domain, we could validate a certificate in order to grant security. (Note: GameSpy default engine was SSLv3 with MD5+SHA1, today this method is not considered secure as it could be cracked with minium effort in a short period of time)
- Changing the machine or networking configuration won't affect the connection to the server.
❌ Cons
- Not usable by everybody, an example is that a retail Nintendo DS cart can't be patched. (It requires a memory patcher like Action Replay)
- Currently there is no automatic patcher, making this process harder for new comers.