real gamecube backup loader discussion

Discussion in 'Wii - Hacking' started by ppc_gba, Nov 4, 2008.

Nov 4, 2008
  1. ppc_gba
    OP

    Member ppc_gba GBAtemp Regular

    Joined:
    Apr 16, 2006
    Messages:
    197
    Country:
    United States
    ok, so I've given some more thought and experimentation to the Gamecube backup loader. I have experimented with a gcos multi disc, and gotten some interesting results. Apparently when rebooting the system menu using the custom ios, the gc backup is readable, however it causes a crash (black error screen saying remove the disc and restart) when the menu goes to read it, I think possibly because it doesn't have a banner or is missing something else. I believe others have claimed that a regular backup (not based off of gcos) will show up in the menu but won't start.
    I've been trying to wrap my head around this whole mios thing, but I can't help but wonder if the regular ios is really running underneath (mios is very small and i see no di commands), or if it could be used in this way. My first thought was instead of running bc/mios, let's just make a program that loads the gamecube ipl into memory and runs it somehow. However, as I looked around, I found that tmbinc had created a hacked ipl for running backed up discs. Then, I saw that the source was available, and when I examined it I found that the bootloader code was very similar to that of GeckoOs/Backup launcher. So basically as far as I can tell the IPL launches the game (like the System Menu) and possibly might be needed for some system calls. So I tried launching my GCOS game using the regular backup launcher, but it failed, I kept getting a green screen and a reboot. Finally I decided to patch it to load the game as if it were a wii game, since I had identified that most of the relevant code was the same. I tried this and, after disabling DVD_identify and some other checks, forced it to attempt to run it, but this resulted in a crash.
    However, I read on the YAGCD documentation that gamcube discs are also encrypted ( [​IMG] more work). I'm not sure if the GCOS apploader/dol stored on my gcos disc is encrypted, i don't think so, it could be crashing because it's trying to call a function that doesn't exist. In any case, we need Wiigator's dip module source code so we can change it to decrypt gamecube discs, and make more progress.
    If any can shed more light on this I would love to hear it...
    I thought that the ipl was just a ppc program, but I guess we need some kind of hardware emulation/support (which is either enabled by mios (all ppc code or maybe some arm and some ppc??) or bc (arm code running on starlet)?? i hope it's not a hardware/starlet feature, since it might be harder to send the necessary commands to the drive.) I can't seem to properly decompile either bc or mios, so I'm hoping some IDA wizards will stroll thru here.
    another note: running gcos standalone from the GChomebrewLauncher app/mios also is unable to start a game. The app starts but just returns to the main screen when pushing Launch DVD, but maybe this could be fixed if decryption is enabled?
     


  2. hughjass

    Member hughjass GBAtemp Regular

    Joined:
    Sep 20, 2008
    Messages:
    255
    Country:
    United Kingdom
    BUMP

    sounds like you're onto something here.
     
  3. djdynamite123

    Banned djdynamite123 Master Of Hardcore!

    Joined:
    Sep 21, 2008
    Messages:
    3,791
    Location:
    Redcar, England UK
    Country:
    United Kingdom
    Easier to just get a chip to be honest.
     
  4. MrBubbles

    Member MrBubbles GBAtemp Fan

    Joined:
    Oct 19, 2007
    Messages:
    323
    Location:
    USA
    Country:
    United States
    Honestly don't bother. Nintendo is making ports of GC games into Wii games now.
     
  5. moonmonkey

    Newcomer moonmonkey Member

    Joined:
    Jul 12, 2006
    Messages:
    43
    Location:
    Birmingham
    Country:
    United Kingdom
    I'm not sure if thats the right attitude to be honest. A lot of people do this thing not because of the end result but because they see it as a challenge to be overcome. Sure there are always easier ways to do things, hell mod an original Gamecube, they're cheap enough. If people like ppc_gba thought like that there would be little advancement, i'd go as far as to say that if he/she gets GC back ups running they wont even play them.
    I say good luck [​IMG]
     
  6. Mrkinator

    Member Mrkinator Neil Peart Wannabe

    Joined:
    Sep 28, 2008
    Messages:
    890
    Location:
    Great White North, Eh!
    Country:
    Canada
    Agreed. I hope someone gets it running. I'd be happy to test or what not.
     
  7. cataphonicdisson

    Newcomer cataphonicdisson Member

    Joined:
    Oct 13, 2008
    Messages:
    20
    Country:
    Canada
    Would be awesome to see this research evolve into a working app or something.

    here's hopin
     
  8. hughjass

    Member hughjass GBAtemp Regular

    Joined:
    Sep 20, 2008
    Messages:
    255
    Country:
    United Kingdom
    But they're not porting every single GC onto wii now, are they? No.

    Come on, there may already be methods out there to play GC games, but if there can be more options available for people, then why not support this?

    moonmonkey I agree with you completely.

    ppc_gba, I think it's fantastic what you're trying to do.

    If you get anywhere with this, then I'd be happy to beta test your work.

    Good luck!
     
  9. WiiGator

    Newcomer WiiGator Member

    Joined:
    Sep 28, 2008
    Messages:
    38
    Country:
    Germany
    I already tried to load GameCube games. The result was:
    - GCBooter Homebrew using cIOS from Backup Launcher v0.3 (IOS_Reload() is the only change required).
    - A patched MIOS, which enables backups.
    - A changed GCOS (replaced 0xA8 by 0xD0).

    I was able to start a game, but the game uses the wrong DI commands for reading. So I got one of the famous "Disc eject" errors.
    You don't need the DIP plugin source code to write a backup loader for GC mode.

    Here are some details for the experts:
    - The DVD reset is executed within IOS from Wii mode. You can only access a DVD in GC mode, when the reset was done before. You will need an IOS with enabled backup support.
    - The BC disables the backup support. There is no change in BC required.
    - The MIOS disables the backup support. When it is reenabled by clearing one bit in a starlet register, it will work.
    - The MIOS code (starlet) doesn't handle or change any DVD command. The broadway CPU has in GC mode direct access to the DI registers. The broadway CPU can't access the DI registers in Wii mode.
    - GC games use the DVD command 0xA8 for reading the DVDs, same is true for Wii mode. DVD offsets must be 4 Byte aligned. Size must be 32 Byte aligned (maybe less?). Destination address must be 32 Byte aligned.
    - Backups are read using 0xD0 command. DVD offsets must be 0x800 aligned, same value for the size. Destination address must be 32 Byte aligned.
    - GC games are not encrypted.

    The changed alignment restrictions between 0xA8 and 0xD0 are the biggest problem. You can't just replace 0xA8 by 0xD0. There is more required. You need to mix GCOS and SD-Boot. The result may be a compatibilty like SD-Boot and not like GCOS. My question for ppc_gba is now: Do you want to write this hook code?
     
  10. MagicalWingLT

    Newcomer MagicalWingLT Newbie

    Joined:
    Nov 3, 2008
    Messages:
    7
    Country:
    United States
    What about uploading Saved Game files to your memory card? I have a few games that I can't beat, and I want to upload some files that I got from Gamefaqs.com... I already ordered a SD Gecko Adapter, but what else do I need?
     
  11. blinktoday

    Newcomer blinktoday Advanced Member

    Joined:
    Jul 21, 2008
    Messages:
    66
    Country:
    Canada
    You didn't need any of that, you could of used Gc Savegame installer, and all you would need is an sd card.
     
  12. Screemer

    Member Screemer GBAtemp Maniac

    Joined:
    Sep 21, 2008
    Messages:
    1,248
    Country:
    Germany
    buddy, you are in the wrong thread.

    btw. a homebrew tool to save gc saves from a gc mem card to the front sd would be great.
     
  13. Mrkinator

    Member Mrkinator Neil Peart Wannabe

    Joined:
    Sep 28, 2008
    Messages:
    890
    Location:
    Great White North, Eh!
    Country:
    Canada
    Sounds complicated (here's hoping ppc_gba will do it anyway! [​IMG])
     
  14. YellowYoYos

    Member YellowYoYos GBAtemp Regular

    Joined:
    Sep 19, 2008
    Messages:
    230
    Country:
    United States
    Ether way it is very useful information and I am sure somebody will find it useful. Thanks WiiGator
     
  15. ppc_gba
    OP

    Member ppc_gba GBAtemp Regular

    Joined:
    Apr 16, 2006
    Messages:
    197
    Country:
    United States
    wow [​IMG] that was way more info than i was expecting...

    huh so you're saying that gc games make all their calls to the dvd drive from ppc code with nothing else extra required huh, so I guess this means we can't have gc games running while an ios is running, unless there is some way to subvert the wii/gc mode protections.
    in this case, there might not be any modification of the mios necessary, since you could set the bit from the new sdboot+gcos (or maybe wiigcos...), prior to loading the disc. or even better, it could be possible to inject this wiigcos into mios so it would always be loaded instead of the regular ipl.
    it would seem there is already someone on tehskeen who has gotten gc backups working from wii mode! (no proof yet, only claims...), but it seems pretty complex. i think we can rewrite the main function of the readpatch code of sdboot with some of the code from waninkoko's dip module, or maybe use the dvd functions it comes with.
    just change dvd[2] = 0xA8000000; to dvd[2] = 0xD0000000 in dvd.c;
    the first thing i could think of to replace the alignment issue would be to make a buffer (the same thing that was done on waninkoko's loader, i think), we will read extra from the disc and then fetch pieces of this buffer until we need to get the next buffer.

    i can't find the source for any version after sdboot 0.3, so i hope someone can post a link, or maybe ask emu_kidid himself for it. as i recall i had some issues compiling 0.3.

    of course, in order for any of this to be possible, we need to discover what register must be set, or maybe wiigator could release a patch to be added to wii gamecube homebrew launcher, which I'm sure everyone would GREATLY appreciate [​IMG] where would we be without wiigator and waninkoko anyways...
     
  16. requiem4d

    Member requiem4d GBAtemp Regular

    Joined:
    Oct 25, 2008
    Messages:
    181
    Country:
    United States
    Bravo WiiGator and ppc_gba. This has been incredibly informative. Best of luck to you both.
     
  17. KirovAir

    Member KirovAir Dutch Alcoholic Programmer

    Joined:
    Dec 7, 2006
    Messages:
    587
    Location:
    Netherlands
    Country:
    Netherlands
    That's what I wanted to say. Good luck.
     
  18. deco11

    Newcomer deco11 Member

    Joined:
    Oct 27, 2008
    Messages:
    20
    Country:
    Australia
    Hope this gets somewhere, coz if it does, it will be awesome.

    Good Luck!!
     
  19. samsam12

    Banned samsam12 Test

    Joined:
    May 13, 2008
    Messages:
    818
    Location:
    A House
    Country:
    United States
    it should work with just booting through WiiGator3. I booted a normal GC game through it, it loaded to the title screen, but then gave me a disc read error.
     
  20. Slimmmmmm

    Member Slimmmmmm GBAtemp MoNkEeE

    Joined:
    Nov 1, 2007
    Messages:
    1,687
    Location:
    the land of lol
    Country:
    United Kingdom
    Perhaps what is needed is a reworking of gcos into ? wiicos [​IMG]

    House of dead, or ssbb are wii games that use and load from different partitions etc, maybe this could provide useful ??

    I know of one very clever guy who is playing about with this idea for wii multis, but perhaps it could be used to boot GC in wii mode??
     

Share This Page