Hacking cIOSX rev21d2x: Yet Another Hot Fix!!!!

Did d2x work for you?

  • Yes, I had an issue with the official cios and d2x fixed it

    Votes: 93 48.2%
  • Yes, but everything was already working for me with the official cios

    Votes: 82 42.5%
  • No, and I posted what goes wrong

    Votes: 9 4.7%
  • No, and I won't report what goes wrong because I am a troll

    Votes: 9 4.7%

  • Total voters
    193

WiiPower

Well-Known Member
Member
Joined
Oct 17, 2008
Messages
8,165
Trophies
0
XP
345
Country
Gambia, The
@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.
 

Dr. Clipper

Well-Known Member
Member
Joined
Aug 28, 2007
Messages
2,485
Trophies
0
XP
92
Country
WiiPower said:
@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...
} __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.
I'm all for something like this. It's silly that we have to get a new set of hashes each time when doing IOS detection. Some of the fields are a bit long, though. I would suggest a u32 for magicword, just one name is probably enough, especially if we keep the developer field. Basically, we want all the information that could be useful, but we shouldn't waste space where we don't need to. Keeping it simple and compact might be a better way to go.

Edit: although we should probably also add a reserved field to the end just so that we have room to expand if we think of something else to add at a later date.
 

bnm81002

Well-Known Member
Member
Joined
May 22, 2008
Messages
806
Trophies
0
Location
New York
XP
166
Country
United States
bnm81002 said:
davebaol said:
@bnm81002
When do you get exactly the code dump?
Also, post a syscheck report. Maybe your system config is not fully supported by the installer for some reason.


when it says reloading IOS 236 then it code dumps,
here's my syscheck report, thanks

sysCheck GX v1.0.0 by Erik Spyder

sysCheck GX is running under IOS58 (rev 6175).

Console ID: 42871353.
Region: NTSC-U.
Hollywood v0x11.
Boot2 v2.
System Menu v289 (3.2U).
BC v2.
MIOS v5.
Blocks the GameCube Action Replay.

Found 375 titles.
Found 34 IOS on this console.
No IOS Stub on this console!

Priiloader is installed.


IOS 4 (rev 3): Trucha Bug, ES_Identify, FLASH Access, NAND Access
IOS 9 (rev 778): Trucha Bug
IOS 11 (rev 10): Trucha Bug, ES_Identify, FLASH Access, NAND Access
IOS 12 (rev 269): Trucha Bug
IOS 13 (rev 273): Trucha Bug
IOS 14 (rev 520): Trucha Bug
IOS 15 (rev 523): Trucha Bug
IOS 17 (rev 775): Trucha Bug
IOS 20 (rev 12): Trucha Bug, ES_Identify, FLASH Access, NAND Access
IOS 21 (rev 782): Trucha Bug
IOS 22 (rev 1037): Trucha Bug
IOS 28 (rev 1550): Trucha Bug
IOS 30 (rev 1040): Trucha Bug, ES_Identify, FLASH Access, NAND Access
IOS 31 (rev 3349): Trucha Bug
IOS 33 (rev 3091): Trucha Bug
IOS 34 (rev 3348): Trucha Bug
IOS 35 (rev 3349): Trucha Bug
IOS 36 (rev 3351): Trucha Bug, ES_Identify, NAND Access
IOS 37 (rev 3869): Trucha Bug
IOS 38 (rev 3867): Trucha Bug
IOS 53 (rev 5406): Trucha Bug
IOS 55 (rev 5663)
IOS 56 (rev 5662)
IOS 57 (rev 5661): Trucha Bug
IOS 58 (rev 6175): USB 2.0
IOS 61 (rev 5405)
IOS202 (rev 4): Trucha Bug, ES_Identify, NAND Access, USB 2.0
IOS222 (rev 4): Trucha Bug, ES_Identify, NAND Access, USB 2.0
IOS223 (rev 4): Trucha Bug, ES_Identify, NAND Access, USB 2.0
IOS224 (rev 65535): Trucha Bug, ES_Identify, NAND Access, USB 2.0
IOS236 (rev 65535): Trucha Bug, ES_Identify, NAND Access
IOS249 (rev 20): Trucha Bug, ES_Identify, NAND Access
IOS250 (rev 65535): Trucha Bug, ES_Identify, NAND Access
IOS254 (rev 65281)

Report generated on 2011-05-20.




for davebaol
 

dragbe

Active Member
Newcomer
Joined
Jan 23, 2010
Messages
38
Trophies
0
XP
99
Country
Belgium
bnm81002 said:
I'm having problems trying to install the d2x cIOS using the d2x Installer 1.1, I get a code dump, I used IOS 236 installed from ModMii as the IOS, it reads as follows, help please, thanks?
Do you have devices (GC memory card, USB devices,...) plugged into your wii during d2x cios installer running ?
QUOTE(WiiPower @ May 21 2011, 06:45 PM) 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.
I agree with Dr. Clipper. Thus, in summary
typedef struct _iosinfo {
char magicword[0x10]; //OK with an integer type
char shortname[0x10]; //OK
char longname[0x20]; //useless
char developer[0x20]; //not necessarily useful
u32 version; //internal version can normally be determined on the fly
char versionstring[0x10]; //OK to identify the d2x cIOS (beta included)
u32 iosbase; //OK
u32 iosslot; //useless
char builddate[8]; //not necessarily useful
char reserved[40]; //...
} __attribute__((packed)) iosinfo;
 

WiiPower

Well-Known Member
Member
Joined
Oct 17, 2008
Messages
8,165
Trophies
0
XP
345
Country
Gambia, The
So we could agree on this:
Code:
typedef struct _iosinfo {
u32 magicword;
char name[0x10]; //OK
u32 version; //internal version can normally be determined on the fly
char versionstring[0x10]; //OK to identify the d2x cIOS (beta included)
u32 iosbase; //OK
} __attribute__((packed)) iosinfo;

So use what as magic word?

Example:
magicword = 0x........
name = "d2x"
version = 5
versionstring = "beta1"
iosbase = 56

For the next beta with usb(wbfs) ios reload block?
 

IceIceBird

Well-Known Member
Member
Joined
Nov 14, 2009
Messages
407
Trophies
0
XP
119
Country
WiiPower said:
For the next beta with usb(wbfs) ios reload block?
I like that little hint about the next beta version
wink.gif
 

dragbe

Active Member
Newcomer
Joined
Jan 23, 2010
Messages
38
Trophies
0
XP
99
Country
Belgium
OK for the version field, I had not understood it in this way.
magic word value=sizeof(magicword) + sizeof(name) + sizeof(version) + sizeof(versionstring) + sizeof(iosbase) for example
 

R2-D2199

Well-Known Member
Member
Joined
Jul 2, 2009
Messages
154
Trophies
1
Age
30
Location
Germany
Website
softwii.de
XP
197
Country
Gambia, The
@WiiPower:

I think that the version of the base IOS could be added.

@davebaol:

Great work on d2x cIOS.
yaywii.gif


One question:
Is the problem with the Yourshape CAM a cIOS problem?: http://gbatemp.net/t199353-your-shape-whit-cam-on-usb-loader
If it's a cIOS problem and if it's not too much work, could you fix that?

@dragbe:

Great work on the installer.

I have added the hermes cIOS to your installer.
You can create a "multi cIOS installer".
Here is the sourcecode: http://www.mediafire.com/?z4v23n1eddzztt1

I have made changes in the patchmii_core.c and CIOSMAPS.xml.
 

WiiPower

Well-Known Member
Member
Joined
Oct 17, 2008
Messages
8,165
Trophies
0
XP
345
Country
Gambia, The
R2-D2199 said:
@WiiPower:

I think that the version of the base IOS could be added.
[...]

Right, i consider this useful. Could be displayed in those syscheck apps.

So right now it looks like this:
Code:
typedef struct _iosinfo {
u32 magicword;
char name[0x10];
u32 version; 
char versionstring[0x10]; // for betas
u32 baseios;
u32 baseiosversion;
} __attribute__((packed)) iosinfo;

And i would like something like magicword = 0xDeadBeef or similar


QUOTE(R2-D2199 @ May 22 2011, 02:09 PM) [...]
@davebaol:

Great work on d2x cIOS.
yaywii.gif


One question:
Is the problem with the Yourshape CAM a cIOS problem?: http://gbatemp.net/t199353-your-shape-whit-cam-on-usb-loader
If it's a cIOS problem and if it's not too much work, could you fix that?
[...]

Did you try d2x with IOS58 as base? Only that is supposed to work if any.
 

digdug3

Well-Known Member
Newcomer
Joined
Mar 4, 2009
Messages
76
Trophies
0
XP
77
Country
Netherlands
@davebaol:
Could you add a USB dismount function to the CIOS so all harddrives will go to sleep properly when you shut down?
 

R2-D2199

Well-Known Member
Member
Joined
Jul 2, 2009
Messages
154
Trophies
1
Age
30
Location
Germany
Website
softwii.de
XP
197
Country
Gambia, The
WiiPower said:
R2-D2199 said:
[...]
@davebaol:

Great work on d2x cIOS.
yaywii.gif


One question:
Is the problem with the Yourshape CAM a cIOS problem?: http://gbatemp.net/t199353-your-shape-whit-cam-on-usb-loader
If it's a cIOS problem and if it's not too much work, could you fix that?
[...]

Did you try d2x with IOS58 as base? Only that is supposed to work if any.

I have tried it with cIOS58 d2xv4 and the xbox usb cam, the game gives me an error message that there is a problem with the cam.
 

dtheo

New Member
Newbie
Joined
May 22, 2011
Messages
3
Trophies
0
XP
1
Country
Romania
Hello,
I have an issue with the latest d2x because the disks I attach to wii are not recognized ( I have one genuine seagate freeagent desktop 1TB and one made from a 80GB Samsung HDD).
I have downloaded the last d2xv4 using modmii4.55 to use in 249 (base 56 and 58) and 250 (base 57). After update of 249 with either base - 56 or 58 - the disks are not seen in the system[/u].
All my programs seem to not get access to the disks attached to usb: USBloader GX, wiixplorer, wiimc.

After restoring the old CIOS 249 (d2xv3 , base 58) everything works again.

Keep the great work.
Dragos
 

WiiPower

Well-Known Member
Member
Joined
Oct 17, 2008
Messages
8,165
Trophies
0
XP
345
Country
Gambia, The
Ok, NeoGamma's code for the cIOS identification is done.

Code:
typedef struct _iosinfo_t {
ÂÂÂÂu32 magicword;
ÂÂÂÂchar name[0x10];
ÂÂÂÂu32 version;
ÂÂÂÂchar versionstring[0x10]; // for betas
ÂÂÂÂu32 baseios;
ÂÂÂÂu32 baseiosversion;
} __attribute__((packed)) iosinfo_t;

[...]
ÂÂÂÂÂÂÂÂiosinfo = (iosinfo_t *)((u32)TMD+0x20);
ÂÂÂÂÂÂÂÂif (iosinfo->magicword == 0xbeeeeeef)
ÂÂÂÂÂÂÂÂ{
ÂÂÂÂÂÂÂÂÂÂÂÂsprintf(info, "%s%uv%u%s (%u)", iosinfo->name, iosinfo->baseios, iosinfo->version, iosinfo->versionstring, CIOS_VERSION);ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ
ÂÂÂÂÂÂÂÂÂÂÂÂ// Example: "d2x56v5beta1 (249)"
ÂÂÂÂÂÂÂÂ} else
[...]

Just writing into the tmd at offset 0x20 seems to work fine as expected. The struct and the magic word are still not final, if anybody has any suggestions, please tell. Oh and i didn't sign the tmd afterwards.

So now we need to put that info into the cIOS. Easiest way would be a .txt with a line for each variable and the installer/ModMii reads it and writes the info into the tmd.
 

pplucky

Well-Known Member
Member
Joined
Dec 27, 2010
Messages
380
Trophies
0
XP
72
Country
WiiPower said:
So now we need to put that info into the cIOS. Easiest way would be a .txt with a line for each variable and the installer/ModMii reads it and writes the info into the tmd.
Does this mean that all the "old" cIOS will not be identified, only new ones built after these changes?
 

WiiPower

Well-Known Member
Member
Joined
Oct 17, 2008
Messages
8,165
Trophies
0
XP
345
Country
Gambia, The
pplucky said:
WiiPower said:
So now we need to put that info into the cIOS. Easiest way would be a .txt with a line for each variable and the installer/ModMii reads it and writes the info into the tmd.
Does this mean that all the "old" cIOS will not be identified, only new ones built after these changes?

This means that all new cIOS will be identified automatically without requiring an update of the loader. And the loader devs are free to use the old identification if there's no info found in the tmd. That is what NeoGamma will do btw.
 

pplucky

Well-Known Member
Member
Joined
Dec 27, 2010
Messages
380
Trophies
0
XP
72
Country
WiiPower said:
pplucky said:
WiiPower said:
So now we need to put that info into the cIOS. Easiest way would be a .txt with a line for each variable and the installer/ModMii reads it and writes the info into the tmd.
Does this mean that all the "old" cIOS will not be identified, only new ones built after these changes?

This means that all new cIOS will be identified automatically without requiring an update of the loader. And the loader devs are free to use the old identification if there's no info found in the tmd. That is what NeoGamma will do btw.
OK, just wanted to confirm that. It makes sense to me...
 

bnm81002

Well-Known Member
Member
Joined
May 22, 2008
Messages
806
Trophies
0
Location
New York
XP
166
Country
United States
dragbe said:
bnm81002 said:
I'm having problems trying to install the d2x cIOS using the d2x Installer 1.1, I get a code dump, I used IOS 236 installed from ModMii as the IOS, it reads as follows, help please, thanks?
Do you have devices (GC memory card, USB devices,...) plugged into your wii during d2x cios installer running ?




only my USB drive is connected, nothing else
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • K3Nv2 @ K3Nv2:
    Don't know burnt pizza can be pretty bad
  • Xdqwerty @ Xdqwerty:
    gonna download sonic generations to my ps3
  • BigOnYa @ BigOnYa:
    How do you put games on there? Does it have like a game store on the ps3?
  • K3Nv2 @ K3Nv2:
    Black market store
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, download a pkg file, put it in a usb or a sd card, put the usb or sd card to ps3, turn on ps3hen, go to install game, install the game
    +1
  • BigOnYa @ BigOnYa:
    Ok yea that's same with me, was just curious. Coolio
    +1
  • Xdqwerty @ Xdqwerty:
    good night
  • BigOnYa @ BigOnYa:
    Nighty night
  • K3Nv2 @ K3Nv2:
    Lmao my keyboard decided to randomly die
  • BigOnYa @ BigOnYa:
    Its prob your new router interfering w it
  • K3Nv2 @ K3Nv2:
    How when my old one worked fine
  • BigOnYa @ BigOnYa:
    You figure out ring and all smart devices? And POE
  • K3Nv2 @ K3Nv2:
    Yeah but gave up on PPPoE
    +1
  • Sicklyboy @ Sicklyboy:
    did you fix it ken?
  • K3Nv2 @ K3Nv2:
    Bob the builder
  • K3Nv2 @ K3Nv2:
    Uck
  • BakerMan @ BakerMan:
    you
  • K3Nv2 @ K3Nv2:
    Deeze nuts
  • BakerMan @ BakerMan:
    $21 bill dropped

    iu
  • K3Nv2 @ K3Nv2:
    Wtf are you doing with that $20 cutting up meth
  • BigOnYa @ BigOnYa:
    Going to jail if he tries to spend it
  • K3Nv2 @ K3Nv2:
    Try to buy something with it
    K3Nv2 @ K3Nv2: Try to buy something with it