real gamecube backup loader discussion

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

  1. ppc_gba
    OP

    ppc_gba GBAtemp Regular

    Member
    197
    0
    Apr 16, 2006
    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

    hughjass GBAtemp Regular

    Member
    255
    0
    Sep 20, 2008
    BUMP

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

    djdynamite123 Master Of Hardcore!

    Banned
    3,791
    1
    Sep 21, 2008
    Redcar, England UK
    Easier to just get a chip to be honest.
     
  4. MrBubbles

    MrBubbles GBAtemp Fan

    Member
    323
    0
    Oct 19, 2007
    United States
    USA
    Honestly don't bother. Nintendo is making ports of GC games into Wii games now.
     
  5. moonmonkey

    moonmonkey Member

    Newcomer
    43
    1
    Jul 12, 2006
    Birmingham
    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

    Mrkinator Neil Peart Wannabe

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

    cataphonicdisson Member

    Newcomer
    20
    0
    Oct 13, 2008
    Canada
    Would be awesome to see this research evolve into a working app or something.

    here's hopin
     
  8. hughjass

    hughjass GBAtemp Regular

    Member
    255
    0
    Sep 20, 2008
    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

    WiiGator Member

    Newcomer
    38
    0
    Sep 28, 2008
    Gambia, The
    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

    MagicalWingLT Newbie

    Newcomer
    7
    0
    Nov 3, 2008
    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

    blinktoday Advanced Member

    Newcomer
    66
    0
    Jul 21, 2008
    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

    Screemer GBAtemp Maniac

    Member
    1,248
    1
    Sep 21, 2008
    Gambia, The
    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

    Mrkinator Neil Peart Wannabe

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

    YellowYoYos GBAtemp Regular

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

    ppc_gba GBAtemp Regular

    Member
    197
    0
    Apr 16, 2006
    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

    requiem4d GBAtemp Regular

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

    KirovAir Dutch Alcoholic Programmer

    Member
    587
    24
    Dec 7, 2006
    Netherlands
    Netherlands
    That's what I wanted to say. Good luck.
     
  18. deco11

    deco11 Member

    Newcomer
    20
    0
    Oct 27, 2008
    Hope this gets somewhere, coz if it does, it will be awesome.

    Good Luck!!
     
  19. samsam12

    samsam12 Test

    Banned
    818
    0
    May 13, 2008
    United States
    A House
    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

    Slimmmmmm GBAtemp MoNkEeE

    Member
    1,687
    27
    Nov 1, 2007
    the land of lol
    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??