SoftChip Backup Loader

Discussion in 'Wii - Backup Loaders' started by requiem4d, Nov 4, 2008.

  1. Dark_anth

    Dark_anth Banned

    Banned
    1
    Aug 1, 2008
    United States
    why is he making a loader when one is already out? is this going to be better or have anything new? i mean no offense, but wiigators is nearly perfect. will this have 6x or something like that?
     
  2. Seraph863

    Seraph863 Member

    Newcomer
    1
    Sep 26, 2008
    United States
    Softchip is designed to allow booting of 1:1 backup discs on your Wii.
    Primary Goals

    * Allow a broad range of developers to contribute.
    * Compatibility with almost all Wii titles.
    * Compatibility with existing cIOS releases.
    * Compatibility with consoles from any region.
    * Compatibility for ISO9660 Homebrew discs

    Secondary Goals

    * Ability to use "Ocarina"-style codes
    * Compatibility with "Waninkoko/WiiGator"-style decrypted discs
    * Store any configuration to SD/USB
    * Region/video patching to allow imported discs & backups from any region

    Wishlist

    * Allow runtime patching of the system menu & Starlet to use the Disc Channel on system boot
    * Remove the need for any cIOS.
    * Allow 6x drive speed while running backup discs.


    All taken from page 1 of the project code. It's coded in C++ too! Gator and Wan's were not coded in C++.

    Currently this loader is NOT working, so we can't determine if it is faster or more compatible. However, I am VERY excited for this release!

    Edit: He is PROBABLY working on this project to challenge himself, learn about the Wii and console applications (first time coding for a console), possibly out of boredom... Who knows! This release might actually be better than WiiGator's! His is better than Waninkoko's, isn't it?
     
  3. Screemer

    Screemer GBAtemp Maniac

    Member
    2
    Sep 21, 2008
    Gambia, The
    there is a thread about bl v3 over at tehskeen: http://www.tehskeen.com/forums/showthread....t=backup+loader

    djdynamite123 started it with a complete tutorial how to get it running. so i don't think it would be a problem to open a thread at tehskeen. i know the first loader thread was closed, but it was because of the leak.
     
  4. madtamski

    madtamski GBAtemp Fan

    Member
    1
    Oct 15, 2008
    Glasgow, Scotland, UK
    As far as I can see the comment only relates to the function/procedures name.

    Generally coders don't list the param defs. when they're re referencing them.
    We do as a standard, but only once just above the proc/func declaration

    In the function above it has no params, so it's defined as ()
     
  5. Seraph863

    Seraph863 Member

    Newcomer
    1
    Sep 26, 2008
    United States
    Well yes... we've established that there is a typo in the comment and it doesn't affect anything. Was just pointing it out. Moving along now.
     
  6. madtamski

    madtamski GBAtemp Fan

    Member
    1
    Oct 15, 2008
    Glasgow, Scotland, UK
    Sorry man wasn't pushing the point, but by the time I had sorted out my post around half a dozen others had appeared lol

    No worries :-)
     
  7. requiem4d
    OP

    requiem4d GBAtemp Regular

    Member
    1
    Oct 25, 2008
    United States
    Thanks to everybody for your support again. Also thanks to Waninkoko for his review of my code. That in itself was an honor and a privilege.

    Apologies to Traveler1 who showed up earlier in the IRC channel, I was out running service calls for my "real job".

    Thanks also for pointing out the typo in the comment. Although a code comment doesn't make any difference as to the functionality of a program, when documentation is being written it can prevent a copy-paste typo transition. That has been corrected.

    Also, I realize that this isn't necessarily the best venue for a release to "call for coders", but software needs more than programmers to survive. It needs the support of alpha/beta testers, bug reports, feature requests, and general publicity to gain support of the community, and I chose a place due to the large user base here at GBAtemp who had already been using WiiGator's and Waninkoko's loaders.

    I hope we can get this thing fixed in the next few days.

    Also:
    I have several reasons:
    1.) This is my FIRST application for a game console. This has been a learning experience for me.
    2.) I would like to allow the community to have updated sources almost the moment they're made.
    3.) Third, I would like to have input from a much broader range of developers.
    4.) I was bored.

    Someone else suggested doing something similar for a first project, and it was deemed "too difficult". I've always loved a challenge. After spending 3 years developing an OS for x86-64 CPUs in my spare time, I figured this would be a nice change of pace.
     
  8. masaemon

    masaemon Advanced Member

    Newcomer
    2
    Sep 27, 2008
    United States
    Appreciate your work and expecting your loader.
    I admire your coders so much and and i start to want to study more programing knowledge.
    wish the new reader will resolve the "disk read" prob.
    Thanks.
     
  9. WiiPower

    WiiPower GBAtemp Guru

    Member
    2
    Oct 17, 2008
    Gambia, The
    When i start this loader, it identifies the game correctly and crashes then with a null poiter exception, as expected. But if i simply retry to load by pressing A, it crashes again, with a difference in the System certificates location. 0x80d02c60 and 0x80d03820. When i take a look at http://wiibrew.org/wiki/Memory_Map i'm completely confused: Shouldn't this loader use the memory starting at 0x81330000 and keep the memory before that free?

    PS: I know i don't have a lot of knowledge and maybe the stuff i mention is worthless, but please take a look at it anyway.
     
  10. requiem4d
    OP

    requiem4d GBAtemp Regular

    Member
    1
    Oct 25, 2008
    United States
    Theoretically, yes. However, the very games the software tries to load doesn't always follow the "rules" from wiibrew. Wiibrew has been an amazing resource in trying to get all this done, so not to detract anything from them at all.

    Case in point, the Wario Land bug I just fixed in WiiGator 0.3b, although at the very top of this area in memory, the storage of the entryholder in this location causes the game to lock with a black screen upon loading.

    Thanks for the suggestion, and the review. [​IMG]
     
  11. WiiPower

    WiiPower GBAtemp Guru

    Member
    2
    Oct 17, 2008
    Gambia, The
    I think i have found a small bug:
    If i try to load a game and presse the power button after getting the exception, the wii shuts down. But the wiimotes does not and i'm not capable to turn the wii on with the wiimote. I tried to force the wii to shutdown the wiimote with this:
    void SoftChip::Standby()
    {
    WPAD_Shutdown(); // Added to shutdown the wiimote
    STM_ShutdownToStandby();
    }

    But now the wii crashes totally when i press the power button.
     
  12. requiem4d
    OP

    requiem4d GBAtemp Regular

    Member
    1
    Oct 25, 2008
    United States
    Confirmed. Good job spotting this one. Do you get a code dump or just a hard freeze? I've added the issue to the project site.
     
  13. WiiPower

    WiiPower GBAtemp Guru

    Member
    2
    Oct 17, 2008
    Gambia, The
    With my mod the wii just freezes and i have to press the power button for 3 seconds to turn it off.
     
  14. requiem4d
    OP

    requiem4d GBAtemp Regular

    Member
    1
    Oct 25, 2008
    United States
    Thanks, I'll see what I can figure out.
     
  15. roy_hu

    roy_hu Member

    Newcomer
    1
    Oct 21, 2008
    United States
    I compared your code with wiigator's side by side, but couldn't figure out where the problem lies. I also made a few changes I thought might help, but they didn't work. The only way to debug this I can think of, is to replace every piece of your code with wiigator's, until we locate the bug. It must be a very tiny one that we overlooked.
     
  16. requiem4d
    OP

    requiem4d GBAtemp Regular

    Member
    1
    Oct 25, 2008
    United States
    Feel free do to that, at least to figure out where the problem lies. However, that isn't the proper solution to this issue. While a lot of the calls may be similar (they really have to be) to WiiGator's, this is not based on his loader. I thought of using his code as a base, but decided against it to keep from having to sort through tons of "original application" code. Most of the information used in construction of this loader came from the dip module, wiibrew, information gathered by examining the structure of a Wii disc, and old-fashioned trial and error.

    In order to truly have a "fix", we need to analyze the apploader further to figure out what I'm doing wrong.

    I know this information has already been reversed, but other than the apploader by marcan, bushing, and others, I don't have a very reliable reference on how this particular part works beyond loading the apploader into memory, setting a pointer to a function, and retrieving function pointers needed to load the system file sections, boot, fst, bi2, and main.dol.

    It's times like these I wish I knew a little more about the console.
     
  17. Jacobeian

    Jacobeian GBAtemp Advanced Maniac

    Member
    3
    May 15, 2008
    Cuba

    You should not directly call shutoff functions in IRQ Callbacks (and power button callback is one)

    What you have to do is:
    1/ make the callback setup a flag in your code
    2/ check for the status of this flag periodically in your code and call whatever you want to shut down the Wii when it's set (SYS_ResetSystem(SYS_POWEROFF,0) should be better)

    Anyway, this an interesting idea and your code seems to be clean BUT I fear most issues rely in the modified IOS code, not in the loader itself (or maybe just for a few ones, like clearing bad memory areas [​IMG] )
     
  18. requiem4d
    OP

    requiem4d GBAtemp Regular

    Member
    1
    Oct 25, 2008
    United States
    Unfortunately, I'm afraid you're most likely correct. In any case, hopefully, we'll know for sure soon. At which point we can shift our goals to either a fully-working cIOS or something else entirely...
     
  19. sum182

    sum182 Advanced Member

    Newcomer
    1
    Oct 23, 2008
    United States
    Id like to do some beta testing and see if i could work any bugs out. Im very much a newb at coding but maybe i'll be able to see something. I have the source since you posted it here but could someone compile it for me? For some reason i cant =(
     
  20. WiiPower

    WiiPower GBAtemp Guru

    Member
    2
    Oct 17, 2008
    Gambia, The
    I have problems to understand the loop where the error occurs(i know that the error could be somewhere else):

    while (Load(&Dest, &Size, &Loader_Offset))
    {
    // Here is where the problem is... Dest shouldn't be zero.
    if (!Dest) throw ("Null pointer from apploader.");
    if (DI->Read(Dest, Size, Loader_Offset
     
Loading...