USB Gecko source codes - Hardware and Latest Gecko OS

Started by osoagent, August 01, 2009, 09:19:19 AM

Previous topic - Next topic

Juggz

Same here.

Just got my USB Gecko today & I went to access http://code.google.com/p/geckodownloads/ & I can't.

Trying to head straight to http://code.google.com/p/geckodownloads/downloads/list gives me a 403. I thought it was public access, is this just a temp glitch w/ googlecode or something? Is there a mirror to the files by chance?

I know that most stuff is on the disk but I wanted to make sure I have all the latest drivers, tools, & such before hand.

Thanks much

MOD EDIT: link fixed

Link

We're going to restore access soon.. Nuke deleted the project without brkirch's or my knowledge.. so well.. we're a bit puzzled.. we'll get in contact once it's online again! Everything is backed up, no worries!

Juggz

Quote from: Link on February 23, 2010, 09:01:42 AM
We're going to restore access soon.. Nuke deleted the project without brkirch's or my knowledge.. so well.. we're a bit puzzled.. we'll get in contact once it's online again! Everything is backed up, no worries!

Sweet! That's a bummer that Nuke "nuked" it... I ended up spelunking around & found a link to latest driver here in this post from Ian. I got WiiRD & had a copy of gecko 1931 on my PC & I spaced it (anyone looking for gecko they have 1901 on the WiiRD blog).

I started messing around and poking out a few codes last night. Thanks for keeping us posted Link & you have a good one.  :)

Link

http://wiird.l0nk.org/projectfiles/

I also uploaded one of the latest SVN snapshots.. we are very probably going to set up a new SVN and everything should be back to normal.. for now.. sorry, right now that's all I can offer :(

AlienX69

Thanks GREAT news ....  8)

Keep us posted .... ;D


AX

Elaugaufein

Hi, I've been trying to compile from the source provided (using the svn in link's projectfiles) and I've run into a few problems. I'm using the latest version of devkitPro as well as the zlib pre-compiled library for said version of devkit pro under Windows 7.

Firstly, the source as provided doesn't compile, I believe this is because line 126 of gfx.c is

Vector axis =(Vector) {0 , 0, 1 };

when it should be

guVector axis = (guVector) {0,0,1};

and the same again on line 179.

Also /libpngu/pngu.h at line 440 refuses to compile since its looking for zlib.h as a non-system file (assuming that this is supposed to be the pre-compiled zlib header I changed it to a system file reference, <zlib.h> instead of "zlib.h" and added $(PORTLIBS) to the makefile , which causes it to compile. But there are a lot of warnings, however most are about non-explicit casts and different signedness and incompatable pointer types, which should theoretically be fine assuming they are are left in there due to a lack of cleanup desire as opposed to because they are actual errors, which can be hard to tell without a detailed inspection (and I confess to being unfamiliar with the PPC architecture, although I'm fairly familiar with C).

Now I have a boot.elf and a boot.dol.

Since Gekoo OS uses the boot.elf , I take the boot.elf and notice a problem in passing, the proper boot.elf is 494 kb , my boot.elf is 882kb, I assume that this is just to the proper boot.elf being packed and proceed on my way (I tried packing it too later on using dosbox since the packing program is 16-bit and suffice to say it doesn't change anything except needing to edit the makefile in the packer directory to add the appropriate entry point as the readme says easily enough done by looking at the format from the gecko_src makefile).

Program boots , (great) , no option to launch rebooter or channels (fine, what I'm trying to do is modify this to run off of IOS 236 if IOS 36 isn't patched (mine isn't) and IOS 249 lacks the identify patch (which the current version of it does), so that's what I'm expecting), try and launch WiiSports DVD (which I've already started through the properly compiled Gecko OS and it works), and I get a (Program) Exception has occured and Stack Dump screen. 

Any help or insight ?

Thanks
Elaugaufein

WiiPower

#21
If you are lucky this code dump is random and comes from bad IOS Reload code in libogc. Here's the description how to get the libogc that i use(and got rid of some IOS Reload related errors by it):

This application is compiled with devKitPPC r21 and a patched libogc 1.8.3(+libfat 1.0.7 + zlib). To rebuild the used libogc, get the source for libogc 1.8.3 and replace s32 __IOS_LaunchNewIOS(int version) with the one from libogc 1.7.1:

s32 __IOS_LaunchNewIOS(int version)
{
u32 numviews;
s32 res;
u64 titleID = 0x100000000LL;
STACK_ALIGN(tikview,views,4,32);
#ifdef DEBUG_IOS
s32 oldversion;
#endif
s32 newversion;

if(version < 3 || version > 0xFF) {
return IOS_EBADVERSION;
}

#ifdef DEBUG_IOS
oldversion = IOS_GetVersion();
if(oldversion>0) printf("Current IOS Version: IOS%d\n",oldversion);
#endif

titleID |= version;
#ifdef DEBUG_IOS
printf("Launching IOS TitleID: %016llx\n",titleID);
#endif

res = ES_GetNumTicketViews(titleID, &numviews);
if(res < 0) {
#ifdef DEBUG_IOS
printf(" GetNumTicketViews failed: %d\n",res);
#endif
return res;
}
if(numviews > 4) {
printf(" GetNumTicketViews too many views: %u\n",numviews);
return IOS_ETOOMANYVIEWS;
}
res = ES_GetTicketViews(titleID, views, numviews);
if(res < 0) {
#ifdef DEBUG_IOS
printf(" GetTicketViews failed: %d\n",res);
#endif
return res;
}
res = ES_LaunchTitle(titleID, &views[0]);
if(res < 0) {
#ifdef DEBUG_IOS
printf(" LaunchTitle failed: %d\n",res);
#endif
return res;
}
__ES_Reset();
newversion = IOS_GetVersion();
#ifdef DEBUG_IOS
printf(" IOS Version: IOS%d %d.%d\n",newversion,IOS_GetRevisionMajor(),IOS_GetRevisionMinor());
#endif
if(newversion != version) {
#ifdef DEBUG_IOS
printf(" Version mismatch!\n");
#endif
return IOS_EMISMATCH;
}
return version;
}


A compiled version for windows of this libogc is available here:
http://www.mediafire.com/?2918dox8zls229l


But i don't really think this will help, i got a similar issue the last time i tried to compile it. I fear you need to manually hunt down the problem.

Anyways, i think you should change some of the code if it wasn't done yet. If you use a patched IOS36, then i recommend to require ignore signatures, patched nand permissions and ES_Identify patching. This will allow you to just access the files of the channels directly without using ES_Identify, and then identify as the channel before launching. If you patch newer IOS for ES_Idenitify, it only works once per IOS Reload, while Gecko OS was written for IOS36v1042 which can't access files directly, but can use ES_Identify as often as you want.
And before anyone gets a dumb idea, IOS36v1042 does not work on over the half of all Wiis and could even "kill" your HBC if it uses that, so don't install it!

PS: It could still be an IOS Reload related problem. Before doing an IOS Reload, you need to shutdown all subsystems, like storage devices and WPAD.(PAD does not need to be shutdown)

Bully@Wiiplaza

#22
isn´t it a secret built? :confused:
I thought we aren´t supposed to post it on the public section, whatever...
The new built won´t improve anything for "gct cheaters" anyway, only for coders :D
My Wii hacking site...
http://bullywiihacks.com/

My youtube account with a lot of hacking videos...
http://www.youtube.com/user/BullyWiiPlaza

~Bully

Thomas83Lin

#23
Quote from: Bully@Wiiplaza on May 15, 2011, 12:40:15 PM
isn´t it a secret built? :confused:
I thought we aren´t supposed to post it on the public section, whatever...
The new built won´t improve anything for "gct cheaters" anyway, only for coders :D
Now that i see were this was posted I'm not sure, so i've removed the post. oops

Nuke

This thread is old.

The source code for Gecko OS has always been linked off wiibrew.org, the hardware vhdl files however are pretty old but I linked to the final vhdl in this forum.

I keep downloads here now:

http://code.google.com/p/geckodownloads/downloads/list

It is old code now and quite bad code but it is good starting point to make own / better loader.

Gecko OS 2.0 will get a release but I need to r&d some new features, as it not worth releasing until I have something fresh / cool to bring you folks.
0xFFFFFFuuuuuuu

WiiPower

Just a few random suggestions:
- Make it possible to lower Arena1Hi by 16/32/64 KB for lots of memory for codes
- Gamecube Ocarina&debugger
- A more easy way to implement main.dol/code handler/fst patches. I think some codes are actually patching the main.dol or the code handler, so moving them to the gameconfig.txt would free up some memory available for codes. But other than Brawl+ and similar i haven't seen this being used. Hmm, the same format as the .txt but with the title id of the game? For moving the code list & patches. Maybe that's already implemented, it's been a while since i looked at Gecko OS' source code, if it is, it might need more promotion. I know that changing this stuff as codes is required if the game does a .dol loading process, but these games are rare.
- Video mode patches to allow component cables to be used on more games and playing (almost?) all import games in color even if the tv doesn't support the other region

WiiPower

Some GC games are not working by just booting MIOS, Eternal Darkness and Starfox Adventures for example. This is due to the audio streaming, which has to be enabled before booting BC.


#define IOCTL_DI_DVDLowAudioBufferConfig 0xE4

static u32 bufferin[0x20] __attribute__((aligned(32)));
static u32 bufferout[0x20] __attribute__((aligned(32)));

s32 setstreaming()
{
u8 ioctl;
ioctl = IOCTL_DI_DVDLowAudioBufferConfig;

memset(bufferin, 0, 0x20);
memset(bufferout, 0, 0x20);

bufferin[0] = ioctl << 24;

if ( (*(u32*)0x80000008)>>24 )
{
bufferin[1] = 1;
if( ((*(u32*)0x80000008)>>16) & 0xFF )
{
bufferin[2] = 10;
} else
{
bufferin[2] = 0;
}
}
else
{
bufferin[1] = 0;
bufferin[2] = 0;
}

int Ret = IOS_Ioctl(__dvd_fd, ioctl, bufferin, 0x20, bufferout, 0x20);

return ((Ret == 1) ? 0 : -Ret);
}


This function executed after reading the disc id fixes this problem.

giantpune

Quote from: WiiPower on May 18, 2011, 09:29:30 AM
- A more easy way to implement main.dol/code handler/fst patches. I think some codes are actually patching the main.dol or the code handler, so moving them to the gameconfig.txt would free up some memory available for codes.


i think this also has to do with the way the website is laid out.  i large portion of the codes i have uploaded to the website are one-line 04 codes that are patching some ASM in the main dol.  they could just as easily be added to the gameconfig.txt using its poke( ... ) feature.  but i dont think the code website has any support for gameconfig.txt hacks, and therefore no code downloader ive tried can get the codes.  so, AFAIK, the only way to share these haxx via the website is by making them into a 04 code to be put in the gct.

dcx2

I asked Mathew_Wi to update his GCT editor to include GPF support.  If he gets it working, then you can just take 04 codes from the database, drop them into his app, and it will spit out the GPF file that you can place on your SD card.  No need to mess with gameconfig.txt.

James0x57