Similar to how you can share your Steam library with family or friends I thought it'd be cool to be able to do the same thing with Switch. It'd be basically the same thing as handing your physical Switch cart to a friend, but with the convenience of a backup loader with all your games on an SD without having to switch carts. This is intended for a small group of family/friends (or personal use) which you trust and will allow access to on an individual basis. The point of this is to safely allow multiple people to use XCI dumps online and avoid bans.
The idea is to embed or integrate into a backup loader a component which manages the unique keys on an XCI image and ensure that only one person is using it online at a time. Basically each person would have an RSA public and private keypair to identify the user to share with and you can configure for each XCI who you want to share that game with (whitelist). Some games you could designate as offline only which would allow multiple people to use the same XCI at a time, but would disable Internet connections for that game on boot. I'd also like some notification system that allows you to see who is using each game and if you want to kick them off and play your game you could send a Switch notification (like a modified built-in download finished notification) to give them a few minutes to save and wrap things up. A companion PC tool could also be made, but I think it'd be better to keep everything local to the Switch. I don't want this to require any centralized servers which need to be set up or any port forwarding needed either; just easy to set up and convenient to use.
To get something like this to work, we obviously need an open source XCI backup loader available first but this would be relatively simple to implement and some of this can be done now in the meantime. I have some programming experience, but am not familiar with the specifics of the Switch HW and what's possible right now as far as level of access to system interfaces and control so I'm not sure how much time I'll have to work on this myself. That being said I'd like to work on something like this and could start a Github repo it just might not be as fast for me to work on as other devs who already know what they are doing. I'd like to gauge interest on this and see if anyone has any insight on how viable some of these features are. I'd imagine some of the features (like leveraging the Switch notification system or disabling network connections for a game) would need higher levels of access and we might have to wait or add in ourselves for Atmosphere or other CFWs to provide those capabilities.
Desired features:
- Easily generate and share user RSA certificates on Switch HW (used to uniquely identify users and share XCI key data)
- Encrypt unique XCI certs with PKI and inject at backup loader (prevent someone else from resharing your XCI certs)
- Scrubbed XCI images are kept separately from encrypted XCI certs (if no XCI cert is present/available, game will boot in offline mode)
- Offline booting mode to disable Internet connections for a game allowing multiple people to play an XCI image at the same time (offline/local play)
- List of games you are sharing/shared with you (by user, group, or shared pool) that shows games in use
- Support for multiple XCIs of the same game for online play between 2 or more people
- (extra) SFTP integration to connect to your own external FTP server to share scrubbed XCI images
- (extra) Leverage built-in Switch notification system to send messages to other users
- (extra/separate homebrew integration) voice chat and messaging system without having to use a stupid app
The idea is to embed or integrate into a backup loader a component which manages the unique keys on an XCI image and ensure that only one person is using it online at a time. Basically each person would have an RSA public and private keypair to identify the user to share with and you can configure for each XCI who you want to share that game with (whitelist). Some games you could designate as offline only which would allow multiple people to use the same XCI at a time, but would disable Internet connections for that game on boot. I'd also like some notification system that allows you to see who is using each game and if you want to kick them off and play your game you could send a Switch notification (like a modified built-in download finished notification) to give them a few minutes to save and wrap things up. A companion PC tool could also be made, but I think it'd be better to keep everything local to the Switch. I don't want this to require any centralized servers which need to be set up or any port forwarding needed either; just easy to set up and convenient to use.
To get something like this to work, we obviously need an open source XCI backup loader available first but this would be relatively simple to implement and some of this can be done now in the meantime. I have some programming experience, but am not familiar with the specifics of the Switch HW and what's possible right now as far as level of access to system interfaces and control so I'm not sure how much time I'll have to work on this myself. That being said I'd like to work on something like this and could start a Github repo it just might not be as fast for me to work on as other devs who already know what they are doing. I'd like to gauge interest on this and see if anyone has any insight on how viable some of these features are. I'd imagine some of the features (like leveraging the Switch notification system or disabling network connections for a game) would need higher levels of access and we might have to wait or add in ourselves for Atmosphere or other CFWs to provide those capabilities.
Desired features:
- Easily generate and share user RSA certificates on Switch HW (used to uniquely identify users and share XCI key data)
- Encrypt unique XCI certs with PKI and inject at backup loader (prevent someone else from resharing your XCI certs)
- Scrubbed XCI images are kept separately from encrypted XCI certs (if no XCI cert is present/available, game will boot in offline mode)
- Offline booting mode to disable Internet connections for a game allowing multiple people to play an XCI image at the same time (offline/local play)
- List of games you are sharing/shared with you (by user, group, or shared pool) that shows games in use
- Support for multiple XCIs of the same game for online play between 2 or more people
- (extra) SFTP integration to connect to your own external FTP server to share scrubbed XCI images
- (extra) Leverage built-in Switch notification system to send messages to other users
- (extra/separate homebrew integration) voice chat and messaging system without having to use a stupid app
Last edited by blaze5,