This post is outdated. To download the latest d2x release refer to the d2x google project.Also see our tutorial how to install d2x.However feel free to post your questions in this thread if you need support.

Click to expand...

What is d2x?

This is the 6th version of our modified cIOSX rev21.
The modules EHCI, FAT, FFSP, ESP, DIP have been fixed to improve usb devices compatibility and nand emulation support, but they have been also extended to add some new cool features like IOS Reload block for DVD/USB/SD and fraglist support.
The new cIOS, obtained by replacing the original modules with these ones, is known as cIOSX d2x where d2x stands for davebaol, xabby666, and XFlak.Davebaol and xabby666 are the authors of the 1st fix and also moderators of the HackWii community.XFlak is a famous member of the GBAtemp community and the creator of the fabulous ModMii which is, among other things, also the official d2x wad builder. He had the original idea of replacing the EHCI module from rev21 with the one from rev19 (the last version known not to have the controller lag) and the lag disappeared.

We like to interpret d2x like a sort of chemical formula (like H2O) which is a nice metaphor where the 3 authors are the atoms that gave birth to this little project, the d2x molecule.
Yeah we know that literally in chemistry d2x means D--X--D just like h2o means H--O--H, so it's not the same as the acronym dxx.
But dudes, that's just a metaphor. So who cares. style_emoticons/default/happy.gif

Since d2x v2 davebaol takes care of the cios, XFlak (how would I do without you? style_emoticons/default/smile.gif ) follows the install tools and xabby666 is vanished into thin air. style_emoticons/default/sad.gif
However since d2x v5 new people are heavily contributing to d2x development, i.e. WiiPower and oggzee. style_emoticons/default/grog.gif Thanks guys, I'm glad to work with you!!!

Changelog:

Warning: Spoilers inside!

d2x v6: IOS Reload Block: The Ultimate Solution

DIP - Added fraglist to support potentially any file system (tnx oggzee).

EHCI - Fixed os_restart_timer syscall invocation with the correct number of arguments.

New features and improvements

IOS Reload Block: The Ultimate Solution

With the IOS Reload Block feature and the new fraglist support games compatibility is now about 100%.
It means you can now play through USB/SD all problematic games like CSI series, Call of Duty 3, Spliter Cell Double Agent and others that previously were not supported.
Also, other less problematic games like Metroid Prime Trilogy are now fully playable without any restrictions.
Finally alt.dol method is now useless and when resetting a game you'll get the expected behavior.
Further information inside the spoiler.

Warning: Spoilers inside!

IOS reload block with fraglist is always used for file systems other than WBFS (note that some usb loaders could use it for WBFS too) and requires a number of free nand blocks strictly proportional to the fragmentation level of the game on the device.
In the worst case it can require up to 15 blocks, i.e. 240KB.
However usually less than 1 block, i.e. 16KB, should be required.

Of course the nand is written just before ios reload, so this doesn't affect games that never reload the ios, even if that feature is enabled.

After ios reload has been performed all reload info are deleted from the nand.

Return to Channel: The Universal method

This feature is available since d2x v4beta4 and allows the user to return to a certain channel, instead of the system menu, when quitting a game.
It's a clean solution and is compatible with all games out there, included problematic ones like Prince of Persia The Forgotten Sands.

Warning: Spoilers inside!

You're too curious!!! style_emoticons/default/tongue.gif

Nand emulation improvements

VC/WiiWare NAND emulation compatibility has been improved a lot and now should be the same as rev17 or even better.
To use multiple partitions support and emulated nand in any folder (not just the root) download Mighty Channels v11.1.
Here is a short list of games that now work properly. Anyway I expect many others not working before now work too.

Notes:
ERR1 = Cannot save the game after each level
ERR2 = Black screen soon after the logo if the save doesn't exist already
ERR3 = Cannot save the game after the 1s time
ERR4 = Error message "corrupted data" after the healthy screen
ERR5 = Save file cannot be created and game stalls on main menu
ERR6 = Black screen soon after the initial logo
OK*1 = It works poperly for most of the nands but not for all.
OK*2 = It works but sometimes still freezes while playing.

Secondary usb port lag issue

The secondary usb port lag issue, fixed by d2x v2, exists since rev19.
You can easily replicate that issue through Rock Band 3 by following x4mer's instructions reported in the spoiler below:

Warning: Spoilers inside!

QUOTE(x4mer @ Jan 30 2011, 05:35 PM)
Could some people please try the microphone test I mentioned earlier, with RB3?

You can just hum a long note, and keep it held till the drive blinks.

QUOTE(x4mer @ Jan 29 2011, 11:58 PM)
My wife was complaining that the mic kept cutting out, and thought there was something wrong with the mic. I tested it by starting a song in singer only mode, and then pausing it after the song started. By doing this, the mic stays active, and you should be able to hear everything you say coming out the speakers, without being drown out by the music. While doing this, the mic would cut out every time the HDD blinked, making it impossible to get 100% on singing as well. This convinced me that the EHCI is still causing havoc, although to a much lesser degree than it did before (Wario Shake It works now for instance).

Controller lag issue

The controller lag issue has been fixed by d2x v1 and it appeared the first time in cIOSX rev20 and it's still there in rev21, while it didn't exist in rev19.
The problem occurs only with certain hard drives affected by slow spin up.
For further details see the great thread by netspy about controller lag issue.

How to install d2x cIOSs

You can choose between 2 different methods to install d2x cIOSs.
Both are valid and achieve the same results. Just choose the one you prefer.

Method 1: ModMii + Multi-Mod Manager

This is the original method used to install d2x cIOSs since its birth.
Personally it's my preferred one, but Windows is required.

If you can't see the last version of the cIOS d2x then download it from the link in the download section below and unpack the content of the folder "modules" inside ModMii's folder named "modules/d2x-beta". This way ModMii will use these modules in place of the ones distributed with ModMii itself.

Add to the download queue all the cIOSX rev21d2x wads you need, for example "249d2x56" and "250d2x57"

Enter "2" to navigate to Download Page 2

Enter "MMM" to add Multi-Mod Manager to the download queue

Enter "D" to download your chosen files

Enter "Y" to start downloading

Check that all the files are "valid" then enter "E" to exit ModMii.

Copy the files from the COPY_TO_SD folder to the root of your SD card and insert it into your Wii

Launch Multi-Mod Manager via the HomeBrew Channel.

Select "Load another IOS", then select IOS236 or any other patched IOS, typically IOS36 or a cIOS.

In Multi-Mod Manager's main menu, go down to select "WAD Manager".

Hold + for 2 seconds to select all the WADs in the folder. Then Press A twice to install them all.

If any files fail to install properly, they will remain marked for installation, so just retry installing those files. NOTE: Be careful not to install any additional wads that may have been previously saved in this folder (they may be safe, but I cannot say for sure).

You're done. Enjoy d2x! style_emoticons/default/cool.gif

Warning: Spoilers inside!

Method 2: Homebrew Installer

This is the official d2x cIOS Installer created by Dragbe and NutNut.and was made with the full support of the d2x team.
This homebrew runs on the Wii and is an alternative to the ModMii method to install the d2x cIOSs.
It's especially helpful for people without Windows and are therefore unable to run ModMii.
Since v2.0 it can also install future beta versions of d2x cIOS by simply adding modules & ciosmaps.xml in the same folder of the boot.dol !

Support for <arg>--ios=XXX</arg> argument in meta.xml to set which IOS to use during installation process.

Changelog :

Installer v2.1:

- New icon (thx WiiD)
- Added support of .wad files on SD/USB root for offline installation.
- The Google Code project is now open.

Installer v2.0:

- A new super cool GUI. style_emoticons/default/happy.gif
- Code completely rewritten.
- Some minors bugfixes in new code.
- Added support for USB devices.
- Correction of the warning text when a slot is already use by a cIOS.
- Now update the used slot list after a successful installation of cIOS without restarting the Installer.
- Come back to "Working IOS menu" in case of non-critical error.
- Support for <arg>--ios=XXX</arg> argument in meta.xml to set which IOS to use during installation process.
- Now allows you to add cIOS in the Installer without update it. You just have to put some files (modules .app + ciosmaps.xml) next to boot.dol of d2x cIOS Installer to support them. Like that, you can easily build d2x beta versions or "hybrids" cIOS with specifics modules you want (DIPP, EHCI, ES, FAT, FFSP, MLOAD, SDHC, USB).

Installer v1.3:

- Replacement of cIOS d2x v6 beta1 by cIOS d2x v6 final.
- Added support of Korean Common Key on cIOS d2x v6 for all bases (except IOS38)(Thx Damysteryman).
- Extended support of Korean Common Key to previous version of d2x cIOS (v3 v4 & v5).

Installer v1.2:

- Added d2x cIOS v5 final and v6 beta1.
- Implementation of the new cIOS identification method (on the v4, v5 and v6beta1)

- It's impossible to downgrade revision of IOS/cIOS already installed if you use a cIOS without ES_Version patch (i.e: like cIOS Hermes) for the installation process.
- If you haven't set the <arg>--ios=XXX</arg> argument in meta.xml and you are using USB device, as soon as you will do a IOS Reload on the "Working IOS menu", the cIOS Installer will ignore the USB device !

How to add a new cIOS in the Installer :
Since d2x cIOS Installer v2.0, it is possible to add cIOS without having to compile sources !
This new functionality can be very useful for installing beta versions of cIOS or even create "hybrid" cIOS such as the cIOS d2x vX but with the EHCI and ES module vY style_emoticons/default/happy.gif

To do this, you do not really need any programming skills apart from reading a .xml file and rename things. style_emoticons/default/tongue.gif
So, to add a cIOS to the list, in addition to those already present, you have to grab the modules (file format .app) of the cIOS you want to build (look at ModMii's sources), place them in the right place on the SD/USB device and edit CIOSMAPS.xml file.

In binaries, you will see a file named sampleCIOSMAPS.xml which is actually the "map" of the cIOS v6 d2x (a kind of installation guide for d2x cIOS Installer).
Once opened with an XML editor, it's scary but there are only a few lines we are interested in:
- <ciosgroup name="D2X v6" version="21006" basescount="7"> Here the tag name indicates the name that appears on the d2x cIOS Installer and version the final revision of cIOS (max = 65535). You can edit these two tags as you wish.
- Then enter the spoiler of the IOS Base you want to install, for example IOS Base 37, I open the spoiler <ios base="37" version="5662" contentscount="22" modulescount="7">
- Inside, the only lines that interest us are those that contain the tags module example: <content id="0x26" module="EHCI21006" tmdmoduleid="3"/>. If I want to change the EHCI module, I can simply change its name.If you put multiples new cIOS, dont forget to change the line <ciosmaps ciosgroupscount="1"> on the top !
- Once the changes are done, save and rename the file sampleCIOSMAPS.xml in CIOSMAPS.xml

- So now, let us see what to do with modules (.app files). The directory tree to use for storing modules mainly depends on the attribute name of the tag ciosgroup involved in the CIOSMAPS.xml. As an example, for a cIOS whith :

CODE
<ciosgroup name = "D2X vX beta1" ...

I have to put its modules (.app files) in the directory :​

CODE
<directory of d2x cIOS installer> D2X vX beta1

style_emoticons/default/excl.gif Putting a space in the attribute name necessarily gives rise to a new directory style_emoticons/default/excl.gif

If name="D2XvXbeta1" then the directory will be <directory of d2x cIOS installer> D2XvXbeta1​

- Verify that the modules' names match with those that you put in the CIOSMAPS.xml
- It's over, the d2x cIOS Installer should see your new cIOS and if the modules are misplaced, he will tell you style_emoticons/default/wink.gif

This section is intended for developers who wants to integrate the new features provided by the cIOS d2x.

The "return to channel" feature

Warning: Spoilers inside!

To enable this feature the loader should call a custom es ioctlv specifying the title id to be launched in place of the system menu.
Usb loader developers can easily integrate this feature with few lines of code inside the apploader process.
Here is a code snippet:

CODE
static u64 sm_title_id ATTRIBUTE_ALIGN(32);

sm_title_id = ..... // title id to be launched in place of the system menu
vector[0].data = &sm_title_id;
vector[0].len = 8;

Note that the command 0xA1 is unknown by all other cios that would return -101, namely EINVAL.
In this case you should apply the old "return to channel" method.

The "IOS reload block" feature

This feature was already available in the last versions of Waninkoko's cios.
However in d2x v4beta3 the method 2 used to block ios reload has been fixed to bypass error 002.
Also it has been improved to block ios reloading multiple times. Finally the method 2 has been extended to support any slot, not only 249.NOTES:

d2x v4: this feature is only relevant to disc loading!!!

d2x v5: USB/SD are now supported as long as the device is wbfs formatted.

d2x v6: native fraglist allows support for non wbfs partitions.

Warning: Spoilers inside!

To enable this feature the loader should call a custom es ioctlv possibly specifying the ios to be launched in place of the requested one.
Usb loader developers can easily integrate this feature with few lines of code inside the apploader process.NOTE:
Only use method 2 to enable ios reload block, i.e. pass mode=2 as first argument.
Use method 0 to disable ios reload block.
Method 1 never worked, so just ignore it.
Here is a code snippet:

/* Set ios for mode 2 */
if (enable) {
inlen++;
// NOTE:
// The IOS to be launched in place of the requested one
// is typically the cIOS already running on ARM processor.
ios = IOS_GetVersion();
vector[1].data = &ios;
vector[1].len = 4;
}

IOS_Ioctlv(es_fd, 0xA0, inlen, 0, vector);

IOS_Close(es_fd);
}

Note that Waninkoko's cios and d2x cios lower than v4beta3 ignore the second argument.
On the other hand to preserve backward compatibility the second argument is optional for cios d2x v4beta3 or higher (249 is the default value).

Nand emulation doesn't support Nintendo Wi-Fi Connection.
The issue persists even with real nand in Mighty Channels for all Waninkoko's and d2x cIOSs.
I suspect the issue is Mighty Channels apploader, not the cios.

IOS base 58 and usb devices

IOS base 58 doesn't work through USB with nand emulation and after an ios reload.
Especially the opening request for the device "/dev/usb/ven", made by the USBS custom module during the init phase, returns the error -101.
However the same opening request succeeds when the cios is loaded by an usb loader. I suspect usb loaders perform some preliminary operations on the device that allow the opening request to succeed.

Choppy singing games

Singing games like "U-Sing 2" and "We Sing Deutsche Hits" (German PAL) have serious sync problems through USB.
However those games works great through DVD and SD card. Hermes cIOS 224[57] works great too.
The issue is systematical and easy to reproduce.
From my tests with U-Sing 2 the lag appears:

with rev19, rev20, rev21 and all d2x (can't test lower revs since base 57 is required)

through USB only

with any USB device

even if the watchdog is didabled

I suspect the lag appears in U-Sing 2 because the HDD is continuously accessed while singing (the led never stops blinking).
Pretty sure it's a EHCI module issue.

Missing USB plug and play support

The Amazing Race just shows a black screen

Maybe a bad dump, but WIT tells the image file is not corrupted.
TBH I believe Ubisoft struck again. It's just another AP-protection IMO.
Can anybody play this game with a modchip?
Please test on a Wii having the same region of the game.
UPDATE: Someone can play it with USBLoader GX: http://gbatemp.net/t277659-ciosx-rev21d2x-...t&p=3704940

Tony Hawk's Shred: the usb receiver doesn't turn on

It seems an EHCI module issue.
Hermes cIOS v5.1 works properly but you get a black screen after pressing HOME to quit the game.
The tmd tells the game runs under IOS56.

The Legend of Zelda: Majora's Mask (VirtualConsole)

When connecting the classic controller after Nintendo's logo the screen goes black.
It works with rev17.