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 somewhenShould 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:
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
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 somewhenShould 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