Hacking Gamecube mode code

Mrkinator

Neil Peart Wannabe
OP
Member
Joined
Sep 28, 2008
Messages
888
Trophies
0
Age
30
Location
Great White North, Eh!
Website
Visit site
XP
176
Country
Canada
I don't know if anybody noticed this, but bushing released code for when the Wii boots into GC Mode (probably can't lead to a GC Backup loader, but you never know
biggrin.gif
).

http://forum.wiibrew.org/read.php?8,925

CODE#define BC 0x0000000100000100ULL

u32 *cc_reg = (u32 *)0xCC003024;

*ccreg |= 7;

tikview view;

int retval = ES_GetTicketViews(BC, &view, 1);

if (retval != 0) OSPanic("fail");
retval = ES_LaunchTitle(BC, &view);
OSPanic("fail!!!1");

Someone play around with it. I want to play MGS: Twin Snakes
cry.gif
 

HowardC

Well-Known Member
Member
Joined
May 4, 2008
Messages
490
Trophies
0
XP
308
Country
United States
What this function is doing is checking for a valid ticket. If the ticket is invalid then it fails.

Now in theory one could simply remove the check and force the boot of the disc (do the one line inside the "if" statement) BUT that doesn't guarantee that it'll work as there is probably more checking involved upon boot or else we'd have a loader for gc discs already.


edit:

the problem are the lines:

tikview view;
int retval = ES_GetTicketViews(BC, &view, 1);

what I GUESS that this is doing is creating a variable to store the game's key and storing it in the "view" variable.

when the game is actually launched you'll notice that it is lanched with this view variable as an option. My guess is it's used to decrypt the data on the disc.

The only hope of a loader would be to write a custom ES_LaunchTitle function, which isn't shown in your snippet of code and I'm guessing is buried much deeper.
 

SanGor

Witchhunter
Member
Joined
Aug 21, 2008
Messages
993
Trophies
0
Website
Visit site
XP
215
Country
United States
HowardC said:
What this function is doing is checking for a valid ticket. If the ticket is invalid then it fails.

Now in theory one could simply remove the check and force the boot of the disc (do the one line inside the "if" statement) BUT that doesn't guarantee that it'll work as there is probably more checking involved upon boot or else we'd have a loader for gc discs already.


edit:

the problem are the lines:

tikview view;
int retval = ES_GetTicketViews(BC, &view, 1);

what I GUESS that this is doing is creating a variable to store the game's key and storing it in the "view" variable.

when the game is actually launched you'll notice that it is lanched with this view variable as an option. My guess is it's used to decrypt the data on the disc.

The only hope of a loader would be to write a custom ES_LaunchTitle function, which isn't shown in your snippet of code and I'm guessing is buried much deeper.

did you ever hear the phrase "if you don't have a clue stfu" ?

basicly everything you said is wrong.
so where do I start ... for you loader you had to write a custom MIOS not ES_LaunchTitle. (ES_LaunchTitle is part of libogc btw).
GC Discs aren't encrypted.
well it does create a variable view, but that doesn't store the game's key, the tikview hold severeal information about a Title, you can look that up in the libogc source.
The tikview is necessary for the ES_LaunchTitle function so it knows what Title to launch.
And no you can't remove the if to force the start, that if checks if the function succeded, removing it would most likely lead to an exception in the case the function would fail.
Also a TicketView isn't a Ticket, so it does not check for a valid ticket.

so next time just stfu ok ?
lecture.gif
 

sampson

Well-Known Member
Newcomer
Joined
Jul 25, 2008
Messages
92
Trophies
0
XP
202
Country
United States
damn someone forgot to drink their coffee today

the newer loader appears to already have some form of this code in it and uses it so you can boot gc games region free as well as force video modes... i would imagine the dip module would need updating to make the games work

Code:
/* Check not a Gamecube Game */
ÂÂÂÂif(gameidbuffer[0] == 0x47 || gameidbuffer[0] == 0x55 || gameidbuffer[0] == 0x44){
ÂÂÂÂÂÂÂÂretval = ES_GetTicketViews(BC, &view, 1);
ÂÂÂÂÂÂÂÂif (retval != 0){
ÂÂÂÂÂÂÂÂÂÂÂÂwrite_font(195, 202, "Gamecube Error");
ÂÂÂÂÂÂÂÂ}
ÂÂÂÂÂÂÂÂ
ÂÂÂÂÂÂÂÂ__setappvideo();
ÂÂÂÂÂÂÂÂ__setforceflags();
ÂÂÂÂÂÂÂÂDI_Close();
ÂÂÂÂÂÂÂÂWPAD_Shutdown();
ÂÂÂÂÂÂÂÂ*(volatile unsigned int *)0xCC003024 |= 7;

/* TBD: I believe this will not work, there are future patches required. */
ÂÂÂÂÂÂÂÂretval = ES_LaunchTitle(BC, &view);ÂÂÂÂ// bushing's code
ÂÂÂÂÂÂÂÂwrite_font(195, 202, "Gamecube BC Error");
ÂÂÂÂÂÂÂÂreturn 0;
ÂÂÂÂ}
 

sampson

Well-Known Member
Newcomer
Joined
Jul 25, 2008
Messages
92
Trophies
0
XP
202
Country
United States
without a modchip? i thought you had to have sdload so you could run it in gc mode for it to work or some shit
 

sampson

Well-Known Member
Newcomer
Joined
Jul 25, 2008
Messages
92
Trophies
0
XP
202
Country
United States
well i fiddled with the gamecube function but i can't even get a disc to pull the id in gcos and will error out before the attempt at booting it happens. real games work fine though of course.

unfortunately none of the decryption programs for wii isos and claimed gc isos actually work so *shrug*

sweet bed here i come
 

jinxvorheeze

Well-Known Member
Member
Joined
May 13, 2008
Messages
572
Trophies
0
XP
15
Country
United States
Didn't know any of the backup loaders claim to have GC support. Must have missed that one. And as for the GC Boot with SDGecko, it works just fine. So you are either bad at following directions, or you also have no idea what your talking about. An SD Gecko is only like 3 euro's, why don't you people just buy one and stop complaining. Or follow a tutorial and build your own. This problem was solved a while ago.
 

Miles

Well-Known Member
Member
Joined
Apr 28, 2008
Messages
368
Trophies
0
XP
210
Country
United States
I'm pretty sure that not even bushing can code something to make gamecube GCMs and ISOs work in Wii mode.
You'll need an SD Gecko, USB Gecko, or a mod chip.

sampson said:
well i fiddled with the gamecube function but i can't even get a disc to pull the id in gcos and will error out before the attempt at booting it happens. real games work fine though of course.

unfortunately none of the decryption programs for wii isos and claimed gc isos actually work so *shrug*

sweet bed here i come

The only GC ISO Loader that works on Wii Hardware is SDboot.
 

sampson

Well-Known Member
Newcomer
Joined
Jul 25, 2008
Messages
92
Trophies
0
XP
202
Country
United States
re: jinxvorheeze

i am well aware of sdboot and the sort pull the corncob out of your ass. i wanted to see how the function works in relation to the custom dip module but i guess that doesn't matter because i should go buy something else because it already works. guess i better get a modchip to because hey, they already work.


your line of logic is flawed at best and is terribly annoying. you come off as a pompous asshole when you didn't even read anything i said in regards to booting gc games. everyone knows about sdboot.

if you read the code i pasted the guy attempted to put gc support in his loader but is going to require further work. r;c;p and grow up a bit while you're at it
 

Mrkinator

Neil Peart Wannabe
OP
Member
Joined
Sep 28, 2008
Messages
888
Trophies
0
Age
30
Location
Great White North, Eh!
Website
Visit site
XP
176
Country
Canada
Wow, sorry to get everyone pissed
wacko.gif
. I just thought I'd share that code.

I know there's a way using GC Homebrew Launcher and using SD Gecko to boot SDBOOT to run the game from SD Gecko (but there's a chance of bricking). Has anybody tried that method?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: @K3Nv2, and leave ectoplasm all over the place