I'm trying to get Ocarina or at least Wiird to work on gamecube games without the need of additional useless stuff like Action Replay or SD Gecko or whatever.
I launch gamecube games manually, and i'm able to patch the main.dol. I think i could get Wiird to work, but none of the wii hooks works on gamecube(surprise...). Maybe i would also need the gamecube code handler, but i'm not sure if the wii code handler would also work on gamecube.
Anyways, i need the data of the gamecube hooks, like this
const u32 ossleepthreadhooks[4] = {
0x90A402E0, 0x806502E4, 0x908502E4, 0x2C030000
};
If i had the source of the Gecko OS for gamecube i could extract them myself.
Nicksasa created some GC hooks for me, but it's not working.
On Wii i'm able to estblish a connection between Wii and PC if i don't patch any hooks, but use the paused start option.
On GC basically everything freezes and does not allow the connection. On paused start i get no connection, to me this means the code handler doesn't work in GC mode or something is missing. Without paused start the game freezes (i think) when the hooked function is executed, i guess the code handler freezes in this case.
I also tried the code handler for codes only, same freeze when the hooked function is executed.
Any help is much appreciated.
PS: I also tried the code handler from Gecko OS 1.07b, same results
Will gcosusa16d.iso file help you? Perhaps translating the start.dol or other related geckoos for gamecube files in that iso file?
Just wondering...
Quote from: conanac on April 12, 2010, 01:20:03 AM
Will gcosusa16d.iso file help you? Perhaps translating the start.dol or other related geckoos for gamecube files in that iso file?
Just wondering...
If, then a .dol would help. I got a Gecko OS to run in GC mode that says it's 1.06d fixed. It can't play discs, but it's able to connect to my PC, while my loader is able to play discs, but can't connect to my PC. I have somebody trying to extract the code handler from it, thanks.
i dont have a gamecube so im just thinking out load here, but you can try this...
use the geckoOS that is made for gamecube to start a game and connect to it.
dump the whole mem1 range to a .bin on your pc.
find the spot in that memory dump where the main.dol is and delete anything that is not in the range of the main.dol
do a hex diff of the main.dol and the remainder of the memory dump.
shouldnt this highlight the section of the main.dol that is different ( and i would guess are the hooks )?
to find the code handler, i would look at the kenobiwii saved as a .bin.
pick out a section of it and search for that section in the memory dump you got from the gamecube.
if you dont find a match, try a different section. there most likely are many parts of it that are identical even if they used a different code handler in the GC version.
Once you find the section that matches, you can compare the known code handler and what you think is the code handler and hopefully extract it from the memory dump.
I hope it's easier to extract the code handler with a disassembler, i think i'm going to know somewhen today. About the hooks, i already have 3 and since the code handler can't connect in paused start, i think the problem is the code handler. And if i was using Wiird to dump the code handler, i was hoping i could just dump 0x80001800-0x80003000, but i guess that would cause a crash.
I don't see why reading from 0x80001800-0x80003000 would crash...when you do a search, that portion of memory is part of the dump.
Thanks. On paused start i can't get to dump the memory and launching a game is impossible. So i would either need "that other" method to boot GC games with Gecko OS or i need the info by disassembling.