NAS Loader GX - Load backups from your NAS!

Discussion in 'Wii - Backup Loaders' started by Archerite, Mar 6, 2019.

  1. Archerite
    OP

    Archerite Advanced Member

    Newcomer
    3
    Sep 16, 2018
    Netherlands
    I have been thinking about this for a while now...loading backups from a NAS with terabytes of storrage on older consoles. I have read about a similar thing on a PS2 loading from a Raspberry Pi over ethernet. And a recent article where someone used a Raspberry Pi to emulate a USB drive on a nintendo switch loading data from a NAS over wifi.

    I already have to many projects I am working on (or want to anyway) and this would be just an other one. It's mostly the technical part that intterest me but also the convinience of having al backups in a single place. No moving harddrives requiring extra power or slow USB drives that could get corrupted. And it might be possible to use the same idea/protocol/app on the GameCube and Wii U...maybe others too.

    So to be clear...it does not exist yet. But here is my idea:
    - Use a NAS as the storage device
    - Run a app/service on a Synology NAS to have less overhead and more transfer speed.
    - Have the option to use SMB/NFS if the above is not possible on other brands.
    - Wired connection required at 100Mbit minimum, WiFi as an option if fast enough
    - Modified existing loader (not claming to be better at writing one than what's already out there) supporting both GameCube and Wii backups

    In theory it just requires a device driver that shows up as a file system just like USB0:/and SD:/ already do now. It could show up as NAS:// or whatever and work just like existing SD and USB to the rest of the backup loader.

    I am really curious if some of you might be intterested in an option like this.

    edit: added link to article
     
    Last edited by Archerite, Mar 6, 2019
  2. Cyan

    Cyan GBATemp's lurking knight

    Global Moderator
    22
    Oct 27, 2002
    France
    Engine room, learning
    this is not possible on Wii to load directly from the network. network loading has already been thought years ago.
    there's no OS, supervisor, firmware, etc.

    it requires a custom IOS (nobody is working on IOS anymore) so it won't happen.
    even if someone was still active in IOS development, it wouldn't be possible either, the network is not fast enough to read games from Wifi. (the wifi and network adapter is locked to slow speed by nintendo)

    why not just connect the Wii USB to NAS USB ?
    it's possible if your NAS has its USB seen as UMS (USB Media Storage) instead of host, and the homebrew don't even need an update to add protocols "nas:/" as it's seen as "usb:/"
    usbloaders supports fat32, ntfs, ext2/3/4. your program might have to emulated remote USB access, and file system.



    if your NAS doesn't have USB and only Wifi, then the same RPi adapter could be used like the switch usb to wifi adapter I guess, acting as UMS.
     
    Last edited by Cyan, Mar 6, 2019
  3. Archerite
    OP

    Archerite Advanced Member

    Newcomer
    3
    Sep 16, 2018
    Netherlands
    I think it's possible since existing backup loaders already do something to redirect the calls for files on an original disk to the images on a USB Drive or SD Card. The only thing that would change with my idea is that the data comes from a NAS instead of an SD card or USB drive. Also with additional formats like WBFS and compressed formats extra work needs to be done by the loader to make the game unaware that it is not reading from an actual disk.

    I have been holding back this idea for a while now and the article gave new inspiration to it actually. I agree WiFi would be far to slow on the Wii to load games, but it would be an alternative for those that don't have the Ethernet Adapter. I know from my own experience that the USB adapter works at 100mbit on a Linux PC, I see no reason for Nintendo to "lock the speed" of either WiFi or the Ethernet adapter. Most likely it's the way USB works on the Wii that makes it slow or a really bad driver. Like I said I did not test any speeds yet for SD, USB, Ethernet or WiFi and all of this is just an idea based on that article (updated my first post to link to it) and my own older thread about using the Raspberry as a GameCube modchip.

    When I say NAS I actually mean a Synology or something similar with multiple harddisks and the ability to add software or running apps on it.
    I know there have been devices that looked like an external USB Harddrive but also had an ethernet and/or WiFi connection. These are not really a NAS even though it supports a similar feature. I expect them to be very slow and locked down in that you won't be able to add an extra service to run on it's CPU.
     
  4. Cyan

    Cyan GBATemp's lurking knight

    Global Moderator
    22
    Oct 27, 2002
    France
    Engine room, learning
    the USBLoaders are not redirecting calls from disc to USB/SD, the IOS is doing it.
    the USBLoader is not in memory anymore when the game launches and can't do anything else.

    the loader only reloads the IOS, load the dol (executable) in memory (like the console does officially from Disc channel when you launch a game disc), patches it if needed by the user, and launches the dol (like done officially by the console too), which shutdowns the current PPC running application and replace it with the new one (the dol) which has for effect to remove the loader from memory. the game runs bare-bone on the console's chipset, there's no OS or other program running at the same time to do some additional parallel jobs.

    In order to add a new path, it's not as easy as just replacing "usb:/" to "nas:/" in cIOS sources, you actually require to code packet and network functions, requests, checksum, lost packet, re-requests, etc.
    IOS does not have these function as native command because game were never supposed to be loaded from network. Games also don't have "re-request" feature, if a file is not served it freezes (at best you get a "please reinsert the game disc" message, but there's nothing to trigger a reinsertion : Remember the game is alone, there's no more USBLoader in memory to send a "disc is reinserted" command. This is NOT nintendont which is always in memory)
    people already have problem when using USB with active sleep timer because the game is not meant to "wake up" the sleeping device (disc are not supposed to go to sleep, so why would a game have a check to see if it sleeps?).

    all the work is not required to be done in the USBLoader, but in the custom IOS module, and like I said no developer is working on IOS anymore.


    the best solution would be like your article does : an USB adapter which take care of the communication with other devices. the IOS would request files from USB, and get them transparently without knowing where they come from.
    but it needs to be fast enough for the game to get requested files or it could freeze/crash/not retry.



    When you said NAS, I understood NAS.
    I own a synology too, and it has USB ports on it. the problem is that the ports acts as Master (host) and not client (remote) device. so if you know how to develop for Synology to change the USB mode to be seen as UMS that would work by connecting the NAS and Wii together.
     
    Last edited by Cyan, Mar 6, 2019
  5. kaisersozeh

    kaisersozeh GBAtemp Regular

    Member
    4
    Mar 21, 2018
    Antarctica
    Phobos
    @Archerite - The problem is this - Johnny Wii User has all these wii games but only one storage peripheral; wants access to the files on the device from the network, but also wants to load games to the wii.
    Something with comparable functionality, that doesn't yet exist and could be done -
    Use the wii as the NAS.
    Ftp (ftpii) is a bit flaky, unreliable; but, I think a couple of the gx emulators can load roms over samba.
    Wii's have a really low power requirement, are dirt cheap and ubiquitous. A NAS wii, just add hard drive, could be very popular.
    You could load the NAS dol on boot, or your usbloader could load it after an idle time.
     
Loading...