Hacking Wood-be Wii hacker and developer

amplimax

Member
OP
Newcomer
Joined
Dec 11, 2011
Messages
6
Trophies
0
XP
1
Country
United States
So, I recently bought a Wii and spent a few days hacking it, following guides and learning how the system works.

I have a new Wii, one with a D3-2 chipset that makes it impossible to read non-Wii discs. So I bought a USB HDD.

USB loaders are working great. I have WiiMC and a bunch of emulators and am very, very happy with everything. I'm able to play backups and watch movies and what-not and my Wii has basically become a full entertainment center!

But now I'm curious to take things even further. So, I have 2 questions.

For the first, I wonder if there are any tutorials out there to help people become actual developers of Wii-brew applications. Right now, none of the Wii ports of emulators (like SNES Gx, etc.) can recognize my USB HDD, and if I'm reading things right, this is because they simply don't support USB yet, so I have to load my SNES backups and such through an SD card. Also, WiiMC cannot save and load playlists, or do some other cool things. So, I would love to get involved in development of these applications and add these features myself. I have coding experience in C but it's been a while, and anyways I'm not very familiar with the type of low-level stuff that these applications rely on. But I'm willing to put in the work and learn. I just need a push in the right direction. Where can I learn this stuff?

The second question involves the D3-2 chipset and the way the Wii recognizes Wii discs. In short, I don't understand what distinguishes a genuine Wii disc from a burnt back-up. Obviously there is something different *about the disc*, as this is the only thing that changes when you swap one for another. But what is that difference? Is it in the formatting? Why can't burnt back-ups fake that? This is really just a curiosity: Configurable USB Loader works fine, and I prefer the USB HDD anyways. I just want to understand this.
 

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,825
Trophies
3
Location
Gaming Grotto
XP
29,841
Country
Poland
To start Wii development you should probably start off by getting devkitPro installed and choosing a GUI of your choice to program in. I recommend Visual Studio Express.

If you don't want to be bothered by low-level crap, it's worth to have a look at the list of available libraries too:
http://wiibrew.org/w...velopment_tools

As far as recognizing whether the disc is original or not, it's a matter of a difference between burned and pressed discs, not so much of the actual data stored on them.
 

amplimax

Member
OP
Newcomer
Joined
Dec 11, 2011
Messages
6
Trophies
0
XP
1
Country
United States
Thanks, I'll check those out.

I actually would be willing to learn about the low-level crap. I'm not sure if people bother developing cIOS anymore, but that sounds fun, too.

This is all totally open-ended. I really enjoyed hacking the Wii and am fascinated with the whole idea of homebrew.

What's the difference between a burned and pressed disc? Is it something physical in the manufacturing process?
 

Foxi4

Endless Trash
Global Moderator
Joined
Sep 13, 2009
Messages
30,825
Trophies
3
Location
Gaming Grotto
XP
29,841
Country
Poland
It's a physical difference that can be detected by the drive, yes.

If you're interested in low-level programming that you should start browsing the devkitPro forums. You'll find all the info there. ;)
 

Taleweaver

Storywriter
Member
Joined
Dec 23, 2009
Messages
8,689
Trophies
2
Age
43
Location
Belgium
XP
8,087
Country
Belgium
Right now, none of the Wii ports of emulators (like SNES Gx, etc.) can recognize my USB HDD, and if I'm reading things right, this is because they simply don't support USB yet, so I have to load my SNES backups and such through an SD card.
Not entirely true. Most emulators (snes9xgx certainly) DO support USB loading*. However, not all USB drives are compatible. Adding your hard disk to the list of supported drives could be a good way to start getting to know the ins and outs of things.


cIOS are still pretty much under development, yes. d2x v7 is released not so long ago...you may want to check out the sticky.



*unless you're using UNEEK or NEEK2O. In that case, those emulators need a few extra lines of code (ask overjoy or obcd for details).
 

obcd

Well-Known Member
Member
Joined
Apr 5, 2011
Messages
1,594
Trophies
0
XP
432
Country
Belgium
The best way to learn coding for a platform, is to start to look at existing code for that platform.
Start with a small program untill you got the basics, and proceed with larger ones afterwards.

The first step is getting things compiled. It's a prove that your development environment is working properly.
After that, you can try to make small changes and improvements.

A device I really would recommend for the wii is an usb gecko. It's the "debug info" gateway between your wii and your pc.
It's not that cheap, but it's worth every cent.
 

jonthedit

Well-Known Member
Member
Joined
May 30, 2011
Messages
1,682
Trophies
0
XP
1,010
Country
Bangladesh
...involves the D3-2 chipset and the way the Wii recognizes Wii discs. ... I don't understand what distinguishes a genuine Wii disc from a burnt back-up.

As stated earlier by another member, it has to do with a physical factor. But this may be possible to avoid with a simple DRIA patch. The only problem is making a patch that makes the Wii think it has a physical similarity.
A simple way to do that is get a SUNDRIVE hardware mod. But that's about it. I've been trying to create a patch but have only gotten 1/26 discs to work with it. :\
The game I managed to get to work was S-20800, or Wii Sports (That shitty game that came with most Wii systems)
 

obcd

Well-Known Member
Member
Joined
Apr 5, 2011
Messages
1,594
Trophies
0
XP
432
Country
Belgium
There is a physical difference between self burned media and commercial media as well. Commercial media has holes pressed in the disk surface. Those are covered with a mirror afterwards (the gray surface) So basically, the laser reflects good on the mirror and diffuses when it falls into a hole. Self burned media also has a reflection layer. When you burn the disk, parts of that layer are made non reflective during the burning process. Those discs are less reflective than commercial ones. A dvd drive can alter the strength of the reading laser to compensate the differences. Game consoles usually are limited to avoid the use of self burned media. That's why you always see the statements to use quality media, and it would also explain why the laser dies faster when it has to read homebrew discs.

Besides that, every disc has an information field that identifies the disc and it's manufacturer. I don't think this information can be changed, not even on a writable disc.
Some Game consoles read their game discs from outer track to inner track, the opposite of normal cd and dvd readers. The outer tracks are longer, so they contain more information/track.
Frequently needed gamedata can be accessed faster when it resides on the outer tracks. I don't know how the situation is with the wii.
 

Lucif3r

Well-Known Member
Member
Joined
Sep 10, 2011
Messages
1,468
Trophies
0
XP
228
Country
Fuck knows, Ive only used the drive like 4 times. Once you go USB you feel sick whenever you hear a dvd rattle and spin :P

It would be easy to check though, just remove the top cover and look at the disc as it spins.
 

amplimax

Member
OP
Newcomer
Joined
Dec 11, 2011
Messages
6
Trophies
0
XP
1
Country
United States
Once you go USB you feel sick whenever you hear a dvd rattle and spin :P

Hah, that's the truth. I was really resistant to switch to USB at first because I thought it meant giving up Gamecube backups, but with Dios Mios Lite, those work too. Now, I almost feel relieved to not even have to bother with the stupid DVD drive. USB is a god-send.


So, I downloaded DevkitPro and am getting familiar with the basics. Did some forum-digging, and it looks like my problem with SNES9x GX and other emulators was what Wever said, just the type of HD, so I'm gonna start there and try and add support for it. Maybe some other people will have the same HD and it will help them too. After that, I'll try and make some basic apps or add tiny features to existing ones. Will work up from there like you guys suggested.

If all of this goes well, maybe I can help out with cIOS development at some point or something. Anyways, it feels good to be getting back into coding. Never thought I'd be doing it on the Wii.
 

amplimax

Member
OP
Newcomer
Joined
Dec 11, 2011
Messages
6
Trophies
0
XP
1
Country
United States
Hrmm, it looks like my emulators were just old. The newer ones point to IOS58 instead of IOS202, and they load from my HD just fine now. I wondered why Configurable USB Loader recognized the HD and they didn't. I play most backups using IOS 249, which has d2x v6 installed with base 56, and never had any trouble.

Does that mean IOS56 and 58 support my HD, and IOS249 inherited support through base 56, or something? But this doesn't make sense: I thought 56 and 58 were both Nintendo IOS, and only cIOS like Hermes and d2x give USB support. So how do the newer emulators support my HD by switching away from 202?

Also, IOS202 is what WiiMC uses, right? I actually have some strange problems with WiiMC: if I try to watch movies off my HD using port 0, it tends to crash after a few minutes, but if I swap the HD to port 1, it plays fine. So, I usually play games off port 0 and watch movies on port 1. It's a bit annoying but it works.

If so, it sounds like my problem has been IOS202 all along. Could I somehow point WiiMC to 249 instead and avoid the port switching?
 

obcd

Well-Known Member
Member
Joined
Apr 5, 2011
Messages
1,594
Trophies
0
XP
432
Country
Belgium
There is a WiiMC flavour that uses IOS58 and one that uses IOS202. IOS58 is the only official nintendo IOS with usb 2.0 support.
Most cios are based upon an base ios, and have the usb 1.1 code replaced by usb 2.0 code.
Only Hermes supported the use of both usb ports in the beginning. His cios are usually installed in slot 202, 222; 223 and 224.
 

XFlak

Wiitired but still kicking
Member
Joined
Sep 12, 2009
Messages
13,809
Trophies
3
Age
38
Location
Cyprus, originally from Toronto
Website
modmii.github.io
XP
9,800
Country
Cyprus
Instead of modifying old versions of wiimc to use IOS249 instead of 202, u could just install the cIOS of your choice to slot 202. But before doing that u should try updating your cIOS202 to v5.1R base 60 (see ModMii's download page 4) and see if that works for u. Alternatively u could try use the latest version of WiiMC which uses IOS58 (requires ahbprot for disc playback).

Since we're on the subject, I know older versions of cfg usb-loader checked for an alternate cIOS module on the HDD, and if found it loads that and uses port1 instead of port0 (not sure if this has since been removed from cfg or not). However, the alternate module hasn't been updated in a loooong time and IIRC only supports wbfs partitions.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    HiradeGirl @ HiradeGirl: Have a nice day. Life. Week. Month. year.