Hacking cIOS installer future

  • Thread starter Thread starter WiiPower
  • Start date Start date
  • Views Views 13,479
  • Replies Replies 59
XFlak said:
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.
But why not having a recommended cIOS+slot list. This will make support much easier. There are enough slots for many needed combinations. And for developers and testers some slots are reserved.
 
I don't see why there can't be both. But I think a recommended cIOS+slot list alone isn't good enough, it would be silly to just assume the recommended cIOS249 is installed to slot249. So while there can be a recommended cIOS+slot list, the loader should probably still verify what cIOSs are installed and where
 
XFlak said:
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?

I have integrated the code from NeoGamma into Syscheck (thanks to WiiPower) and it works:
http://forum.wii-homebrew.com/board42-krea...e-a/#post344475
http://www.mediafire.com/?tqwr5z15d7mnzto

I think that its a good idea to install all cIOS with version number 65535.
 
I don't think installing all cios with v 65535 is a good idea as it doesn't really solve anything.
I like the way d2x now uses 21003, 21004 and 21005 at least tells me something about the cios type and version, some features rely on that.
 
oggzee said:
I don't think installing all cios with v 65535 is a good idea as it doesn't really solve anything.
I like the way d2x now uses 21003, 21004 and 21005 at least tells me something about the cios type and version, some features rely on that.
Don't forget tho, that if someone's Wii winds up running an official Nintendo update (whether accidentally or forced), Nintendo's servers have "stub" images that get shoved into the slots where most of us stick cIOS's (222/223/224, 248/249/250, etc) and ALL with a v65535 in an attempt to prevent us from continuing to mod our machines...

I like what XFlak proposes regarding having the loader app scan to see which cIOS base/mod combo is in which slot and auto pick the best cIOS for a game, it would also need to be able to report to the user "Best known cIOS for this game is not currently installed" or something along that line if what is *known* to work best is not available...

I wish I could add something more constructive to the discussion, but I don't really know much about coding for a Wii... I've "dabbled" with C/C++ on DOS, Windows, and Linux in the past...
 
I do think the idea to scan the installed cIOS and load a suitable one is a good idea, but I never posted it as I think it requires a lot more effort than writing some values to a settings/config file.
It would also need an override for people with problems that sometimes need an unusual cios to solve.

We could get a titles.txt and parse the list to get the id's. For 90+% of games they could be loaded by what is the number 1 cios at the time, the other games could be identified by ordinary users and then the list would be complete, or almost. This file could be used a lot easier than the code and so out to the public for testing sooner.

Although it may or may not bring more or less user errors...some logical thinking is needed. It would also require the user to have the correct cios in the correct slot. Some code could be added to a loader to warn the person the cIOS doesn't match.

So this settings file can be made quickly, improved upon by almost anyone with time to test and not require anything more than notepad to edit. This means it can be changed with or without updating the loader. Maybe the cfg code that checks the ids for custom titles can be reused to some degree.

We could cheat and leave out games that run fine, maybe only include the id of the "problem games". This would help with things like remove (ocarina etc) patches for games using the new IOS reload code that we've all been lucky to get recently.

If we were to check the games required IOS....should that not tell us what the best cIOS would be, or are there exceptions ?

I don't care out the maxed out version, at first I was agreeing with oggzee although some people would worry about it getting overwritten there are precautions you can take. But then I remembered reading some posts by WiiPower recently about identifying a cIOS by writing an extra readable file to the app folder that would write some info (base,slot,developer,rev,etc) to the tmd. So the version number doesn't matter and devs shouldn't need new hash values per build and people can have a max version as the tmd would have the real version for the usb loader to use. So is new way to ident them+max version = win-win ?
 
Slimmmmmm said:
I don't care out the maxed out version, at first I was agreeing with oggzee although some people would worry about it getting overwritten there are precautions you can take. But then I remembered reading some posts by WiiPower recently about identifying a cIOS by writing an extra readable file to the app folder that would write some info (base,slot,developer,rev,etc) to the tmd. So the version number doesn't matter and devs shouldn't need new hash values per build and people can have a max version as the tmd would have the real version for the usb loader to use. So is new way to ident them+max version = win-win ?
Most loaders around don't support the new signature version check, so by maxing the revision numbers you can break these (old) loaders.
 
The loader can see which IOS a game wants, so it can decide which cIOS is the best and just load it automatically. My plan is an option in NeoGamma to enable/disable this feature, enable on default. Oh and i would only use the IOS slots 200-254, without IOS202, and 22x, starting to look at 254 and going down from there. Also i would only take cIOS that can be identified with the new method, with a warning if an older version was loaded.

Right now the logic would be similar to this:
Code:
ifÂÂrequested_IOS = 56
{
ÂÂ1st choice = 56
ÂÂ2nd choice = 37
ÂÂ3rd choice = 0
} else
{
ÂÂ1nd choice = requested_IOS
ÂÂ2st choice = 56
ÂÂ3rd choice = 0
}

0 means to just use the loaded cIOS.

And during the loading is displays something like:
"Using best cIOS(56)" when everything is fine, so it was using the best cIOS already, or it could load it.

"base IOS problem(57)" when cIOS with base IOS57 would have been better and couldn't be found. A little delay here and starting the game anyways should be good enough i think. And displaying "base IOS problem(56)" for most games if base IOS56 was not installed would be intentional. Warnings for all other IOS than 37,56,57 and 58 would display 56. Note that if a game requests IOS53 and there's a cIOS with that base it would be used and display "Using best cIOS(53)" and yes it would use 56 instead with the message "Using best cIOS(56)" if base IOS 53 is not installed, but 56 was.

"using old cIOS(248/58)" When d2x56v6 (249) was the main cIOS and d2x58v5 (248) was the only cIOS with base IOS58 found. If there would be a d2x58v6 (247), the logic would use that instead.

Anything i missed? It got a bit more complicated than i 1st thought, but still easier(to me) to implement than a system with per game settings or whatever. As for standard installations, i would keep it simple:
56 slot 249
57 slot 250
58 slot 251

Any ideas how to name the option in NeoGamma? It needs to be short.
 
Slimmmmmm said:
[...]
We could cheat and leave out games that run fine, maybe only include the id of the "problem games". This would help with things like remove (ocarina etc) patches for games using the new IOS reload code that we've all been lucky to get recently.
[...]

Ocarina works work IOS Reloading games, well i only tested Wiird support in Sam & Max. I could take screenshot from the episodes after booting them from the game's main menu.

I guess i have to add an option to change the 2nd wii hook, like i do for GC games.
 
WiiPower said:
Any ideas how to name the option in NeoGamma? It needs to be short.
Auto-detect cIOS = Yes/No
Detect best cIOS slot = Yes/No
Use best cIOS available = Yes/No
 
WiiPower said:
As for standard installations, i would keep it simple:
56 slot 249
57 slot 250
58 slot 251
Unfortunately, IMHO there is no "standard installation"....
The one you propose, for example, is not suitable for Configurable USB loader which uses slots 245-250 for Waninkoko's and d2x cIOSes... hence slot 251 should be avoided...

I personally use:
37 slot 245
56 slot 246
57 slot 247
58 slot 248
and in this way I have no need to worry about stub IOSes by Nintendo...

Everybody should be free to decide by themselves, for this very reason I think that the concept of "standard installation" is not suitable...
 
The the stuff i plan to do, you wouldn't need to change where you install your cIOS. I was just saying that's how i would install the cIOS and that these 3 are the only cIOS i would install at all.
 
cambric said:
Everybody should be free to decide by themselves, for this very reason I think that the concept of "standard installation" is not suitable...
And I think that the concept of "standard installation" will make support much easier. Think this question "It will not work with cIOS 249!?" or "Which cios should I use for game XYZ?"
 
Wiimm said:
And I think that the concept of "standard installation" will make support much easier. Think this question "It will not work with cIOS 249!?" or "Which cios should I use for game XYZ?"
I understand your opinion and an easier support deserves to be a priority aim.
Actually, what differs the cIOSes is the base IOS and not the slot...
you say "It will not work with cIOS 249"... actually the sentence should be "It will not work with a base56 cIOS"
To a question like "Which cios should I use for game XYZ?" the answer should be "a base57 cIOS" and not "cIOS250"...

Nowadays, saying that you use cIOS249 gives no information... it may be Wanin's r21 base56, d2x r21004 base57, d2x r21003 base58...

QUOTE(WiiPower @ May 29 2011, 02:31 PM) The the stuff i plan to do, you wouldn't need to change where you install your cIOS. I was just saying that's how i would install the cIOS and that these 3 are the only cIOS i would install at all.
Thanks, I saw a post with the idea of scanning all of the installed cIOSes and see the best to be used...
 
cambric said:
[...]Nowadays, saying that you use cIOS249 gives no information... it may be Wanin's r21 base56, d2x r21004 base57, d2x r21003 base58...
[...]

Saying that you use "cIOS249" does say one thing: You don't know what you are talking about. As far as i know there's no cStub being made by anyone.
 
WiiPower said:
cambric said:
[...]Nowadays, saying that you use cIOS249 gives no information... it may be Wanin's r21 base56, d2x r21004 base57, d2x r21003 base58...
[...]

Saying that you use "cIOS249" does say one thing: You don't know what you are talking about. As far as i know there's no cStub being made by anyone.
I know, but that's real life. And usb loaders support this thinking, because they allow to select cIOS 222, ..., 249, 250. If we want a thinking change, usb loader should not select a slot but a cIOS like d2x4-58 independent of the slot and then searching for that cIOS.
 
Ah, so NeoGamma is not an usb loader? NeoGamma doesn't say "cIOS249" anywhere, if then it says "IOS249" or stuff like cIOS37rev19.

If you install a cIOS to slot 249, that cIOS is IOS249 then. NeoGamma will continue to load its cIOS by loading the IOS slot that's determined in the config.
 
Wiimm said:
WiiPower said:
cambric said:
[...]Nowadays, saying that you use cIOS249 gives no information... it may be Wanin's r21 base56, d2x r21004 base57, d2x r21003 base58...
[...]

Saying that you use "cIOS249" does say one thing: You don't know what you are talking about. As far as i know there's no cStub being made by anyone.

I know, but that's real life. And usb loaders support this thinking, because they allow to select cIOS 222, ..., 249, 250. If we want a thinking change, usb loader should not select a slot but a cIOS like d2x4-58 independent of the slot and then searching for that cIOS.

QUOTE(WiiPower @ May 29 2011, 10:02 AM)
Ah, so NeoGamma is not an usb loader? NeoGamma doesn't say "cIOS249" anywhere, if then it says "IOS249" or stuff like cIOS37rev19.

If you install a cIOS to slot 249, that cIOS is IOS249 then. NeoGamma will continue to load its cIOS by loading the IOS slot that's determined in the config.
WiiPower, where the cIOS is installed is not the question, the question is which cIOS is installed into that slot. There are many different choices/options of cIOS setups (base IOS, base IOS version, mod author, and mod version) that people can use, leading to a situation where essentially no two Wii's would ever be 100% alike unless a "universal standard" was agreed upon by the cIOS authors and the devs of the loader apps. That's why there has been discussion of "searching" which cIOS combinations are installed to which slots, so that the loader app can then auto-select the best cIOS to play a specific game.
 
I don't see why both ideas can't go forward tbh. Just think about it.

1 - You recommend a set of IOS to users. Usbloader GX/Cfg/wiiflow wouldn't need cMIOS but Neogamma would. The cIOS would be the same other than that, someone installing uLoader on the other hand would be recommended another set of cIOS.

-To an average user this would make things simple.
-The installer could batch install, making it easy for an average user too.
-If this setup became common, then debugging problems would be streamlined more by having more people reading from the same page.

2 - Code to select and identify the correct cIOS could still be used (but keep an override configurable per game) and if neither is available go with what's best.

My simlpe idea of using an external settings file is only so this behaviour can be changed without the loader needing an update. Thinking about it, an eternal file could have many options and some are good ideas imho...like if the loaders auto ident the cIOS to use, then this external file might have

IOS 36-load 249
IOS ##-load 250 etc

As for the maxed out versions, again can we not keep both sides happy by allowing the version number to be maxed, but putting an ident in the tmd (sure WiiPower posted about something like this recently)

The folders or archives debate... can we have both as an option ?

cIOS installer features

1- Standard install (installs x,y,z)
2- Standard + cMIOS
3- Plus uLoader
4- Install all
5- Select an individual cIOS/IOS to install (236, 58 etc ?) Configure slots etc. This could also be used for Triiforce users to install wanin 17/14 to a slot

Can batch install. Can get files from NUS, unpacked folder, WAD or (wishful) wii nand.

In the quick example above if a user is going to run a standard usb loader, then people would tell them to run the installer and select (1), if they use NeoGamma then they select (2) etc

If they use a usb loader, and uLoader, and NeoGamma and Triiforce then they would select (4)

Oh and the DL Metroid game that is giving problems seems to be just an ocarina code problem, so it should be easy for someone with the game to deactivate all cheats except 1 at a time to narrow down and find the ocarina code that cause problems with block IOS reload.
smile.gif
 

Site & Scene News

Popular threads in this forum