Hacking Multiple mios slots, is it possible?

Maxternal

Peanut Gallery Spokesman
Member
Joined
Nov 15, 2011
Messages
5,210
Trophies
0
Age
40
Location
Deep in GBAtemp addiction
Website
gbadev.googlecode.com
XP
1,709
Country
Why can't you use SNEEK? Doesn't work?
SNEEK can do that fine but (last I checked) only when they're already running. Neek2o can be used kinda like a cIOS can that a loader can start it and tell it what to load BUT it only works with NAND games since the disc game portion of that is currently broken (Wii games can be run from within Neek2o but not from the outside ... GameCube games are broken both from inside it as well as outside) This may be fixed in the beta but I haven't had time to ask about it, get a copy, or test that.

So the different options to overcoming the "MIOS slot" issue as I see it:

1. SNEEK adding the external DI autoboot config options similar to what Neek2o has
2. Neek2o getting their external DI autoboot config options fixed AND their GC booting / BIN switching fixed.
3. Using a modified version of Mini (armboot.bin from BootMii) to have it select a different title instead of MIOS when run in GC mode.
4. Run-time patching the BC to have it load the MIOS directly instead of Boot2
5. Auto-installing the correct MIOS WAD before running the game.

Currently
- PostLoader does #5
- I've barely started with #3 but so far a normal MIOS just gives a black screen and Crediar's MIOS seems to lose the config info about which game to load and just loads the internal disk drive.
- I have an idea of how to do #4 but I haven't actually sat down and tried it yet.
 

d.d.d.

Well-Known Member
Member
Joined
Jun 26, 2012
Messages
432
Trophies
0
Location
Tokyo Metropolis
XP
158
Country
(since there's not really any danger of Nintendo coming out with more IOS at this point) I was planning on set the slots using IOS's 100+
100 - normal MIOS
101 - WiiPower cMIOS (for homebrew)
102 - Waninkoko cMIOS
103 - DML
104 - DM
105 - QuadForce
106 - reserved for QuadForce USB
107+ - just in case ;)

I know some of those are functionally a little redundant but now that you would hopefully be able to have multiple MIOS, I thought it would be nice to go all out.


:shy: I do need help making WAD's for these that would install into the correct slots if anyone wants to offer. (and the BootMii IOS into the MIOS slot for those who don't have BootMii@boot2) I never really got around to investigating how that's done and it's still on my to-do list.

I know the first 3 contain copyrighted code and I can't post them anyhow but many some sort of automated installer (or at least automated re-packer like ModMii) would be ideal ... more for my to-do list.

EDIT :
Also, just for completeness, you could also try installing cBC-NMM into another slot to have it available as well ... but that one you could just call directly from the loader.

Wow~! If this could work, it'd be awesome! :D Good luck on the project!
 

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,825
Trophies
3
Location
Gaming Grotto
XP
29,850
Country
Poland
Nice bump there. If you read Maxternal's post, you'd know that it's perfectly doable using SNEEK, but otherwise impossible due to the Wii's system structure. There's only one pre-set MIOS slot and that's it - the only way to overcome this problem is to use emulated NAND.
 

duffmmann

Well-Known Member
Member
Joined
Mar 11, 2009
Messages
3,966
Trophies
2
XP
2,306
Country
United States
Its not even necessary anymore, usb loaders like PostLoader and Wiiflow feature MIOS patching (wad installing) on the fly, so if you're switching between GC games and Quadforce games from your hard drive, you don't have to deal with the hassle of installing a different wad each time.
 

Hegelocus

Member
Newcomer
Joined
Jan 7, 2015
Messages
6
Trophies
0
Age
35
XP
78
Country
United States
Forgive the abrupt resuscitation, but I’ve been playing around with this idea a lot lately. I luckily have a backwards compatible Wii with BootMii@boot2 so I’ve been pretty carefree with it. Here’s what I’ve done:
  1. Used ShowMiiWads to change the IOS slot of a MIOS (in this case DIOS MIOS 2.11)
  2. Installed DIOS MIOS into slot 105 while keeping MIOSv10 in 101
  3. Told USB Loader GX to scan the title ID ShowMiiWads generated for it using hex editor (very amateur)
  4. USB Loader GX finds DIOS MIOS and tries to boot a Gamecube game from USB
At that point it crashes, obviously because I have not bypassed the BC and/or boot2 and the Wii is still following the chain-o-command. Which brings me to what I can’t do:
  1. Tell the loader to actually USE the other MIOS slot
  2. Tell the BC to go direct to the MIOS in a different slot (or the stock slot)
  3. Tell the MIOS (stock or DIOS MIOS) to accept a call from BC (or anywhere else for that matter)
All of those problems stem from not knowing the language. I looked inside the .apps in a hex editor and found the boot2 title id at the end of BC and beginning of MIOS and changed them to correspond to each other (essentially telling BC to call MIOS and MIOS to actually be called). I did everything in either ShowMiiWads or a hex editor, so without knowing the language I could have told the Wii to make me a sandwich and then wonder why it won’t work.
Now for speculation and unfortunately everything on this list is well beyond my abilities…
  1. Modify a BC to call the MIOS directly; bypassing the boot2
  2. Combine the BC and MIOS into either a single .app or at least a single title id; also bypassing the boot2
  3. I do not believe ShowMiiWads packed it as a system wad (title id was 00000001/00000069) offering a possible way to use Nintendont as a pseudo-BC. If we could code and call the MIOS as if it was a regular IOS yet let it function normally after it has been called it could be possible although HID compatibility would be broken
  4. I suppose if a custom-slotted MIOS could be called directly USB Loader GX could also handle the frame rate/buffer/etc
  5. Also if a custom BC could be built such that it uses the source (disc or usb) to determine the MIOS slot to call it could work, although we have to get around that boot2

If anybody has some further ideas to test or resources to look into, I definitely have the interest; I lack only the knowledge and know how (remember when everything was in hex?). Oh and I found some scraps defining BC, and the BC to MIOS transition in the boot2.
 

Zaide

Well-Known Member
Member
Joined
Apr 2, 2009
Messages
420
Trophies
1
XP
2,290
Country
United States
What's the point of having multiple MIOS nowadays?
As compatibility for Nintendont increases there isn't much point any more that I can think of. But once upon a time you'd want CMIOS, DIOS-MIOS, and QuadForce all installed at once... so it made sense.
 

Hegelocus

Member
Newcomer
Joined
Jan 7, 2015
Messages
6
Trophies
0
Age
35
XP
78
Country
United States
Almost anything Gamecube on the Wii or vWii is personal preference now days; so personal preference. Plus if the Nintendont route could be done it would nearly allow for a MIOS to be put on a vWii. I love Nintendont but a few of my games just have trouble, DIOS MIOS is great if you can get it working and it has its couple of problems that translate to your discs (because they use the same MIOS). I know we are way out in old backwards compatible land, but pursuing this basically brought us post-loader so I think it should be explored further...
 

Adeka

Beta Tester
Member
Joined
Mar 19, 2013
Messages
4,168
Trophies
0
Age
30
XP
1,633
Country
United States
What's the point of having a MIOS on a vWii. The disc drive can't read GameCube discs without heavy modifications to the drive and it can only use the gamecube ports which the Wii U also lacks :glare:
 

Hegelocus

Member
Newcomer
Joined
Jan 7, 2015
Messages
6
Trophies
0
Age
35
XP
78
Country
United States
That is only because DIOS MIOS is the only other option. If a MIOS can be installed as something other than a system utility it may because easier to mod and add native support such as the SSBW Gamecube ports.... plus who cares; I'm interested and have a nearly unbrickable Wii to test with
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,651
Country
France
finding a way to install multiple MIOS is done for the fun, for satisfaction, for just the heck of doing it :P
It's not because there's another method to play gamecube that other or older one should be forgotten.

the work done by someone one day can be useful in the future!
For example, DS Bricker method has been used to hack 3DS ;)
hacking progress is always progress, being useful or not for the end users.



One method you didn't list (I don't actually know if it's possible):
- modify boot2 to use a different MIOS slot.
- use cBoot2
 

Hegelocus

Member
Newcomer
Joined
Jan 7, 2015
Messages
6
Trophies
0
Age
35
XP
78
Country
United States
I had thought about the cboot2, but with BootMii actually in the boot2 I had preferred to avoid messing with it. Mostly because if a silly little hex edit can crash a stock MIOS, I'd hate to brick the Wii without some access to BootMii. To do a boot2 modification that I would feel comfortable installing would require more than I know; and I'm really not sure if running an emuNAND cboot2 would be an accurate test...
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,749
Trophies
4
Age
45
Location
Engine room, learning
XP
15,651
Country
France
yeah, messing boot2 code will probably require a physical NAND dumping/flashing tool to be fine.
There's already an existing cBoot2 method, but I never read how it works nor tested it.
 

Hegelocus

Member
Newcomer
Joined
Jan 7, 2015
Messages
6
Trophies
0
Age
35
XP
78
Country
United States
Is there a way to somehow patch boot2 to contain BootMii within the wad? At least if it still said "BootMii" every time I turned it on I wouldn't be so timid with it. Also... does anybody know what system calls even look like in hex or what tool I should use to actually decipher that? I ask because in the cBC that is used with neek DIOS MIOS (if I am indeed reading this right) makes a call to the boot2 at the beginning as opposed to at the end like the official BC. But even then the title id of boot2 is kinda generic in hex. On another side of this coin would there be anyway to redefine BC and MIOS at the loader level. I also tried (pitifully) to install either an official or custom boot2 to a neek NAND but it will only load discs (because my real NAND has stock MIOSv10). The cboot2 was only edited (in hex) to look for MIOS in slot 105 (title id 00000069)... and even then I only THINK I did that, lol. I really wish the Wii would tell m what error is occurring somehow, like 3 flashes for "no/bad mios" 2 for "boot2 call failed" or something.

P.S. USB Loader GX is the best Cyan, if I ever can figure anything out with this MIOS task I've assigned myself I hope you make a USB Loader MME (Multiple MIOS Edition)
 

Hegelocus

Member
Newcomer
Joined
Jan 7, 2015
Messages
6
Trophies
0
Age
35
XP
78
Country
United States
Sorry for the double post but this is probably the last update on the testing side of it. I think the problem is solved and using multiple MIOS is possible. So I installed both DIOS MIOS and the stock MIOS into slot 105 (not at the same time obviously) using ShowMiiWads to modify the install slot and YAWMM to install them. Then since I can't code something to attempt to call slot 105 on my own, I used an app already in existence. MMM (like many other apps) lets you choose the slot to reload into, so I used that to manually call slot 105; the MIOS. When 105 was DM, MMM froze at "reloading IOS." However my HDD light was blinking which doesn't usually happen when I reload an IOS (unless it has USB access it may flash once), but it DOES happen when I try to boot DIOS MIOS since my HDD has spotty compatibility with DM and it does have USB access; and 3/4 times the disc LED kept blinking, the other time it just stayed lit. When I tried the same thing with the stock MIOS MMM did not freeze. Instead I got a green screen for half a second and then the BootMii menu, and that happened every time.

So what I think all this means is that it is possible to call the MIOS directly and it will behave as a normal MIOS. MMM did not load any settings, paths, files, title ids, etc into the MEM2 (I believe it is the MEM2 that MIOS uses). The MIOS has alot of "if NULL=reset" which hits the boot2, so when it got called called with no MEM2 it returned a bunch of NULLs and reset. DIOS MIOS is designed to get around alot of those "if NULL=reset" so instead of resetting it hangs, waiting for the HDD (or MEM2/or both). The MIOS are definitely being called, and they are definitely behaving normally.

The rest of this problem lies in a loading method. If a loader could imitate BC, at least all the settings, paths, etc, loading all that into MEM2 then call the MIOS slot there is no reason it shouldn't work. I know that is easier said than done, but the fact that boot2 does not NEED to be called is a huge step and USB loader already lets us choose a Wii game slot... why not a GC slot, with an "emulate BC" option.

I just installed DM in slot 247 and put a GC game in the WBFS folder and tried to load it. I tricked USB Loader GX into thinking it was a Wii game and it let me change the slot to load. I told it to load slot 247, the DIOS MIOS. I got the DIOS MIOS splash screen and then then it black screened. More indication that this should definitely be possible.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: @K3Nv2, Bad dragon +1