Wood-be Wii hacker and developer

Discussion in 'Wii - Hacking' started by amplimax, Dec 12, 2011.

Dec 12, 2011
  1. amplimax
    OP

    Newcomer amplimax Newbie

    Joined:
    Dec 11, 2011
    Messages:
    6
    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.
     
  2. Foxi4

    Reporter Foxi4 On the hunt...

    pip
    Joined:
    Sep 13, 2009
    Messages:
    22,734
    Location:
    Gaming Grotto
    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.
     
  3. amplimax
    OP

    Newcomer amplimax Newbie

    Joined:
    Dec 11, 2011
    Messages:
    6
    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?
     
  4. Foxi4

    Reporter Foxi4 On the hunt...

    pip
    Joined:
    Sep 13, 2009
    Messages:
    22,734
    Location:
    Gaming Grotto
    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. ;)
     
  5. amplimax
    OP

    Newcomer amplimax Newbie

    Joined:
    Dec 11, 2011
    Messages:
    6
    Country:
    United States
    Cool. Thanks again!
     
  6. Taleweaver

    Member Taleweaver Storywriter

    Joined:
    Dec 23, 2009
    Messages:
    5,124
    Location:
    Belgium
    Country:
    Belgium
    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).
     
  7. obcd

    Member obcd GBAtemp Advanced Maniac

    Joined:
    Apr 5, 2011
    Messages:
    1,594
    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.
     
  8. jonthedit

    Member jonthedit GBAtemp Advanced Maniac

    Joined:
    May 30, 2011
    Messages:
    1,691
    Country:
    Bermuda
    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)
     
  9. obcd

    Member obcd GBAtemp Advanced Maniac

    Joined:
    Apr 5, 2011
    Messages:
    1,594
    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.
     
  10. Lucif3r

    Member Lucif3r GBAtemp Maniac

    Joined:
    Sep 10, 2011
    Messages:
    1,464
    Country:
    Sweden

    By the sound of the drive it sounds like its reading 1 byte on the outer track and 1 byte on the inner track then back to outer track etc :lol:
     
  11. obcd

    Member obcd GBAtemp Advanced Maniac

    Joined:
    Apr 5, 2011
    Messages:
    1,594
    Country:
    Belgium
    Do you hear it spinning clockwise or counterclockwise?
     
  12. Lucif3r

    Member Lucif3r GBAtemp Maniac

    Joined:
    Sep 10, 2011
    Messages:
    1,464
    Country:
    Sweden
    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.
     
  13. amplimax
    OP

    Newcomer amplimax Newbie

    Joined:
    Dec 11, 2011
    Messages:
    6
    Country:
    United States
    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.
     
  14. amplimax
    OP

    Newcomer amplimax Newbie

    Joined:
    Dec 11, 2011
    Messages:
    6
    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?
     
  15. newo

    Newcomer newo Advanced Member

    Joined:
    Apr 7, 2011
    Messages:
    99
    Country:
    Jamaica
  16. obcd

    Member obcd GBAtemp Advanced Maniac

    Joined:
    Apr 5, 2011
    Messages:
    1,594
    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.
     
  17. XFlak

    Member XFlak Wiitired but still kicking

    Joined:
    Sep 12, 2009
    Messages:
    9,122
    Location:
    Ontario
    Country:
    Canada
    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.
     
  18. amplimax
    OP

    Newcomer amplimax Newbie

    Joined:
    Dec 11, 2011
    Messages:
    6
    Country:
    United States
    Wow, those are awesome.
     

Share This Page