@XFlak and dragbe:
When talking to davebaol about the easy cIOS base IOS identification, i realized that i was talking to the wrong person. He "only" provides the ios modules, i want the cIOS identifaction in the tmd, and the tmd is created by the installer.
How about an extra file in the folder with the .app files? Some human readable file(.xml?) with all info you want to provide. The installer(or ModMii) would take that + the base IOS + the install slot and write the info into the tmd starting at offset 0x20. And the info in the tmd could be in some structure like this:
typedef struct _iosinfo {
char magicword[0x10];
char shortname[0x10];
char longname[0x20];
char developer[0x20];
u32 version;
char versionstring[0x10]; // for betas
u32 iosbase;
u32 iosslot; // useless...
char builddate[8];
char reserved[40];
} __attribute__((packed)) iosinfo;
This way a loader could read the tmd and tell exactly what cIOS it is and wouldn't need to mess around with hashes to identify cIOSes.
Before you start writing code for this, let's discuss it 1st, i would want the 1st version to be final.
When talking to davebaol about the easy cIOS base IOS identification, i realized that i was talking to the wrong person. He "only" provides the ios modules, i want the cIOS identifaction in the tmd, and the tmd is created by the installer.
How about an extra file in the folder with the .app files? Some human readable file(.xml?) with all info you want to provide. The installer(or ModMii) would take that + the base IOS + the install slot and write the info into the tmd starting at offset 0x20. And the info in the tmd could be in some structure like this:
typedef struct _iosinfo {
char magicword[0x10];
char shortname[0x10];
char longname[0x20];
char developer[0x20];
u32 version;
char versionstring[0x10]; // for betas
u32 iosbase;
u32 iosslot; // useless...
char builddate[8];
char reserved[40];
} __attribute__((packed)) iosinfo;
This way a loader could read the tmd and tell exactly what cIOS it is and wouldn't need to mess around with hashes to identify cIOSes.
Before you start writing code for this, let's discuss it 1st, i would want the 1st version to be final.