cIOS installer future

Discussion in 'Wii - Backup Loaders' started by WiiPower, May 27, 2011.

May 27, 2011

cIOS installer future by WiiPower at 11:50 PM (9,930 Views / 0 Likes) 59 replies

  1. WiiPower
    OP

    Member WiiPower GBAtemp Guru

    Joined:
    Oct 17, 2008
    Messages:
    8,165
    Country:
    Germany
    Clipper, Oggzee and me were thinking about the future of "the" cIOS installer. Well, we have different intentions and opinions about it, so we thought it might be a good idea to discuss it in public. Also none of us has one at the moment. Let's see where we get with it.

    Some of the questions:

    Should the installer be final somewhen?
    If it was final, it would mean: When a new cIOS is released, the installer could be used directly by anybody to install the latest cIOS. This would be handy on alpha/beta releases. But it would also mean more work for whoever writes the installer.

    (Only if installer would be final somewhen:)Should the installer use a .zip to get the modules or take them from a folder, or both?
    - Reading from a .zip files would be the most user friendly, just download the latest cIOS, put in the root of the sd card, run the installer, select the wanted .zip and go.
    - Reading from a folder would be better for people who want to change stuff in the cIOS themselves. The .zip method would allow it as well, just 1 step more. And the .zip method would be less prone to user error.
    - Reading from both would have its advantages, but would make the installer more complicated.

    Should the installer save downloaded IOS files to sd card?

    How should the .txt/.xml file look like that will be used for the cIOS identification?
    The current plan is that CFG and NeoGamma(and later most likely the others too) will be able to identify cIOS with info directly saved in the cIOS. Instead of the crappy method that is used right now, but by keeping the identification for all older cIOSes of course. ModMii will have its own way to put this info into the cIOS, which is currently not the best way for an installer that runs on a wii(inside a .bat file). The info which base IOS was used, should be added by the installer automatically as well as the magic. The info what the name of the cIOS is, its version and one additional string can be put in manually. It could be a simple ciosinfo.txt with the content:
    Code:
    d2x
    5
    beta2
    The format how this data looks like in the cIOS is decided already:
    typedef struct _iosinfo_t {
    u32 magicword; //0x1ee7c105
    u32 magicversion; // 1
    u32 version; // Example: 5
    u32 baseios; // Example: 56
    char name[0x10]; // Example: d2x
    char versionstring[0x10]; // Example: beta2
    } __attribute__((packed)) iosinfo_t;

    And it's located in the .app file that is used for this already by Waninkoko. It should be the .app file that is found in the tmd at offset 0x1E7
     


  2. XFlak

    Member XFlak Wiitired but still kicking

    Joined:
    Sep 12, 2009
    Messages:
    9,122
    Location:
    Ontario
    Country:
    Canada
    I think supporting both a zip file and folders is overkill and probably needless work on the part of the coder. And just for user friendliness I think zip's should be supported over a folder. Any devs wanting to test something out will easily be able to zip up their modules, so I'm more concerned about the average joe who doesn't even know what winzip is, lol. But frankly, either way achieves the same thing, so I say whatever is easier on the dev writing it is what should be pursued.

    I think your ciosinfo.txt is fine the way it is. Unless the dev somehow finds it easier to support comma separated values or w/e then why complicate things.

    On a side note, I would however like to see the cIOS Installer be able to support offline installations not only using the unpacked contents of a base IOS (like d2x and hermes installers) but also support base IOS wads (like wanin's installers) saved to the root of the sd card or SD:\WAD. If I had to chose one over the other I think I'd prefer wads be supported.

    <!--quoteo--><div class='quotetop'>QUOTE</div><div class='quotemain'><!--quotec-->And it's located in the .app file that is used for this already by Waninkoko. It should be the .app file that is found in the tmd at offset 0x1E7<!--QuoteEnd--></div><!--QuoteEEnd-->
    This is always the first content of the base IOS, and it's always 64 bytes. For what it's worth, I've bolded the content *.app file to be signed for some common base IOSs in the spoiler below (note that this is the same map array that I provided dragbe when he first began building the d2x cIOS Installer)

    Warning: Spoilers inside!

    edit: it would also be great if offline installations supported not only IOSs saved to the SD card but also saved to an external hard drive, but that's not a huge deal

    edit2: Wow, I thought this thread would be very active by now... 'sup gbatempers?! Speak now or forever hold your peace
     
  3. qwertymodo

    Member qwertymodo GBAtemp Advanced Fan

    Joined:
    Feb 1, 2010
    Messages:
    784
    Country:
    United States
    I say .zip over folder support, then new releases can just be zipped up by the authors and downloaded and copied to the card as-is.
     
  4. cambric

    Member cambric GBAtemp Fan

    Joined:
    May 17, 2009
    Messages:
    408
    Location:
    Tuscany
    Country:
    Italy
    Hi all,

    let me say that the idea is indeed intriguing. I would personally approach the method in this way:

    SD:/apps/cIOS_Universal_Installer/ - location for the new cIOS installer and its config files
    SD:/IOS/ - folder for the Nintendo IOSes in .wad files to be used as base IOS
    SD:/cIOS/ - folder for the cIOSes magic, one .zip file for each different cIOS

    It is better IMHO to have a one to one correspondence between .zip files and cIOSes and between .wad file and IOSes.

    The installer could read the chosen base IOS from SD:/IOS/ and the chosen cIOS from SD:/cIOS/

    It is useful to give the installer the possibility to perform an online installation or an offline one. In the case some .wad IOSes are missing it could first download them in SD:/IOS/ and then use them... the same for the cIOSes...

    Another useful feature could be a sort of batch configuration. For example there could be a file SD:/apps/cIOS_Universal_Installer/config.txt containing the desired cIOSes configuration as a a sequence of lines slot-baseIOS-cIOStype-cIOSversion, e.g.

    246 base56 d2x v3
    247 base57 d2x v4
    249 base56 Wani v21

    the installer could sequentially install the required cIOS in the chosen slots... very useful for reinstalling cIOSes after a system update and even noob-proof

    I hope these two cents ideas could be useful to you.

    Thank you very much for your efforts in improving the Wii Softmod world
     
  5. XFlak

    Member XFlak Wiitired but still kicking

    Joined:
    Sep 12, 2009
    Messages:
    9,122
    Location:
    Ontario
    Country:
    Canada
    building on Cambric's thoughts, u could have the installer make each and every *.zip file found in SD:/cIOS/ appear as a separate cIOS installation option, and u can also save the ciosinfo.txt in each individual *.zip file so each archive has its own unique signature. This way u can choose from multiple cIOS options without having to move or rename files\folders
     
  6. cambric

    Member cambric GBAtemp Fan

    Joined:
    May 17, 2009
    Messages:
    408
    Location:
    Tuscany
    Country:
    Italy
    Very right... this is what I meant with "one to one correspondence between .zip files and cIOSes"
     
  7. WiiPower
    OP

    Member WiiPower GBAtemp Guru

    Joined:
    Oct 17, 2008
    Messages:
    8,165
    Country:
    Germany
    The plan was to have one ciosinfo.txt per cIOS, so i don't understand what the change would be. And most people have a bunch of IOS files in the root of the sd card, so i would look there, in the wad folder and it could be made to look in an /IOS/ folder as well.

    Saving the downloaded wads is a good idea i think.
     
  8. XFlak

    Member XFlak Wiitired but still kicking

    Joined:
    Sep 12, 2009
    Messages:
    9,122
    Location:
    Ontario
    Country:
    Canada
    @cambric, I thought u meant it was better to have 1 zip file to install 1 cIOS (rather than 6 or 7 modules) and that its better to have 1 wad file as a base IOS instead of all of its many unpacked components

    Anyways, I think we're on the same page [​IMG]

    edit:
    @WiiPower, for some reason I thought the cIOS installer would only install on type of cIOS and one would need to rename folders\files to have it build another cIOS. I didn't realize my suggestion was what u had in mind all along, anyways, that all sounds cool to me [​IMG] And yea, saving downloaded files is the way to go, both wanin's and hermes cIOSs worked that way
     
  9. Slimmmmmm

    Member Slimmmmmm GBAtemp MoNkEeE

    Joined:
    Nov 1, 2007
    Messages:
    1,687
    Location:
    the land of lol
    Country:
    United Kingdom
    Zip or not doesn't concern me, but I like cambrics idea to batch install.

    This would maybe save some devs of the loaders a headache if a standard could be pushed which installed ALL cIOS (+cMIOS ??) required to solve common problems.

    If this approach was taken serious by more than 1 loader it could save a lot of time in the future. The "standard" install could install only a few chosen cIOS or a "full" install might include the cMIOS, hermes and the Dx to several slots ensuring the best choice to get the highest compatibility with all loaders inc uLoader, Triiforce and all the standard ones. If any official IOS eg 58 etc was something useful within this maybe it should be included too, but this then becomes more than just a cIOS installer at that point.....

    If a more well thought out standard was used by people then some loaders might start to load a game with a particular cIOS knowing it is the correct choice, but as it is now no dev would add this type of feature because everyone has something different per slot to the next man in some cases. The cIOS to use could either be a hardcoded list of IDs (in code, or already in the settings file) or read the required IOS from the game and use a corresponding cIOS.

    I'm glad WiiPower has taken time to start this topic and hope that a lot more people can post some thoughts on this. As I see it....this is a chance to try to standardise what people are installing to make false reports of bugs a lot rarer. I think the installer has to capture the imagination of the users so they feel it is the only real option to keep things simple.

    Maybe a short list of what is really installed to the cIOS slots would be handy too.
    202=hermes v# blah blah..(222,223,224 and the other 24? ones etc)...248=etc 249=dx v# etc 250=stub if written to a txt or something ? This would save the need in most cases to run another app to know what's installed.

    Also do any installers tell you what is installed before installing things ? I don't think so.

    A thought I had before comes to mind. You can download IOS to use in cIOS installs, you can use a .wad too, but what if you already have a certain IOS installed on your wii....why do no installers use this if it's available ? (too much work ?)
     
  10. cambric

    Member cambric GBAtemp Fan

    Joined:
    May 17, 2009
    Messages:
    408
    Location:
    Tuscany
    Country:
    Italy
    Yes, we are on the same line...
    I prefer one only .wad file for IOSes instead of a folder containing many files. The same for cIOSes, one only zip file instead of a crowded folder
    Different zip files will provide different cIOSes to be installed, to be joined with the different base IOSes

    By the way, a standard denomination of the zip files should also be decided... just as an example:

    d2x-v3.zip - for d2x cIOS version3
    Wan-v21.zip - for waninkoko's v21 cIOS
    Her-v51.zip - for hermes cIOS v5.1
     
  11. WiiPower
    OP

    Member WiiPower GBAtemp Guru

    Joined:
    Oct 17, 2008
    Messages:
    8,165
    Country:
    Germany
    I was thinking about taking IOS files from nand. But i didn't come up with a nice, elegant and quick way to identify if the IOS on nand is untouched.

    I was more thinking about reading the ciosinfo.txt from the .zip and show both filename and the info about the cIOS.
     
  12. cambric

    Member cambric GBAtemp Fan

    Joined:
    May 17, 2009
    Messages:
    408
    Location:
    Tuscany
    Country:
    Italy
    Yes, this is necessary for the installer and absolutely useful....
    My suggestion was just aimed to let everybody easily understand which cIOSes are present in the SD, e.g. when the card is connected to the PC...
    The installer itself should look to the ciosinfo.txt file inside the .zip one.
     
  13. Wiimm

    Member Wiimm Developer

    Joined:
    Aug 11, 2009
    Messages:
    2,052
    Location:
    Germany
    Country:
    Germany
    I like the ModMii solution:
    Create a series of complete WADs on a PC and store them on SD. This makes it very fast to exchange the cIOS with MMM. Such WADs makes me independent of Wii network access and Nintendos servers.

    And therefor this is my proposal:
    Create an installer that is also able to create WAD files in free selected directories of the SD for a later fast installation (or for installation on other wiis).
     
  14. Slimmmmmm

    Member Slimmmmmm GBAtemp MoNkEeE

    Joined:
    Nov 1, 2007
    Messages:
    1,687
    Location:
    the land of lol
    Country:
    United Kingdom
    How many cIOS cover all the bases these days (I use a WODE a lot, so I'm a little behind) ?

    Hermes (5?).. for uLoader Nand Emu
    wanin 17 ? for Triiforce to slot 249 or 250
    MC...no idea
    dx base(s) 56 ? to what slot(s) 24# ? for usb loaders

    cMIOS... what version is best for neogamma etc ? (Wiigators based off of mios 10 ?)
     
  15. dragbe

    Newcomer dragbe Member

    Joined:
    Jan 23, 2010
    Messages:
    38
    Country:
    Belgium
    I like how the discussion turned about cIOS installer. The development of the next relase of d2x cIOS installer goes in this direction (most of the suggestions mentioned in this post was already planned for d2x cIOS installer and for a possible future project sounding like an universal cIOS installer. Unfortunately, lack of time does not allow me to progress as quickly as I want --> it is a very good thing that other people decided to develop a new cIOS installer. Nevertheless, just for fun, d2x cIOS installer v2 will be released anyway. I'll post my suggestions soon especially about the interface (libwiigui) for an universal cIOS installer.
     
  16. WiiPower
    OP

    Member WiiPower GBAtemp Guru

    Joined:
    Oct 17, 2008
    Messages:
    8,165
    Country:
    Germany
    It would be better if we would work together, especially if you want to integrate a GUI, i wouldn't in 100 years.
     
  17. cambric

    Member cambric GBAtemp Fan

    Joined:
    May 17, 2009
    Messages:
    408
    Location:
    Tuscany
    Country:
    Italy
    Up to now I saw too many developers working by themselves, sometimes on similar stuffs...
    I hope to see in the near future people working toghether... the results will be highly better...
     
  18. Slimmmmmm

    Member Slimmmmmm GBAtemp MoNkEeE

    Joined:
    Nov 1, 2007
    Messages:
    1,687
    Location:
    the land of lol
    Country:
    United Kingdom
    Maybe a googlecode project would be a good idea ?

    btw...I thought this was dragbe's "universal" installer we were talking about [​IMG]
     
  19. dragbe

    Newcomer dragbe Member

    Joined:
    Jan 23, 2010
    Messages:
    38
    Country:
    Belgium
    In all cases, the features are more important than the interface. The implementation of an "libwiigui interface" can be optionally considered at the end of a todo list. Firstly, I will continue the development of d2x cIOS installer just for fun without advanced interface and features. After, I will read the libwiigui documentation.

    NOTE: With only me as developer and my lack of time, it would take at least 100 years to get an ultimate cIOS installer.
     
  20. XFlak

    Member XFlak Wiitired but still kicking

    Joined:
    Sep 12, 2009
    Messages:
    9,122
    Location:
    Ontario
    Country:
    Canada
    WiiPower and I were discussing the possibility of something even better than this. If cIOSs are each signed, loaders can scan slots >200 and know EXACTLY what is installed in every slot. Then the loader can have an internal list of what cIOSs perform best with each game, then the loader can have a cIOS "auto" setting to choose the best cIOS for whatever game you're loading. This way, if I have cIOSd2x[56]v4 installed to slot 249 but someone else has it installed to slot 219, the loader will automatically choose the correct slot to launch the game.

    edit: now that cIOSs are going to be signed, do you think we should have their version numbers always be maxed out? ie. instead of d2x v4 having a version number of 21004 should it be v65535. Loaders should be able to detect what's installed without the version number anyways. Now the only question that remains... are apps like syscheck going to be able to detect it using the same method? I would think so, but I'm not 100% sure. So what do u guys think, after signing is implemented should all cIOS version numbers be 65535?
     

Share This Page