Dolphin, the GameCube and Wii emulator - Forums

Full Version: How are Gamecube games stored and loaded?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hello all,

This is my first post. It doesn't seem like this topic is forbidden, but please let me know if it is. I apologize if it's not allowed.

I'm hoping someone can explain something to me. A couple of years ago I used some software to unpack one of my gamecube iso backups (I don't remember what the software was called) to get some of the music files from it.

Anyway I also ended up with a file named "Start.elf", which is what gets loaded initially. When I inspect this file in IDA, I can only see functions up to address 0x80036A64, but when Dolphin loads the game, I see tons of functions way past that in memory.

My question is where are these functions coming from? Is it possible the software that I used didn't extract this correctly, so it's an incomplete file, or do these games have libraries similar to DLLs on Windows that they load?
I can't speak for the memory, but dolphin does have a way to extract a disc (properties, filesystem, right click disc, extract entire disc (or maybe just system data). But that doesn't give me an .elf, at least for the games I looked at.
(11-12-2022, 09:11 AM)MildewMan1 Wrote: [ -> ]Anyway I also ended up with a file named "Start.elf", which is what gets loaded initially.

Are you sure this is actually what gets loaded initially? The file that get gets loaded initially should be a DOL file.
(11-13-2022, 06:27 PM)JosJuice Wrote: [ -> ]Are you sure this is actually what gets loaded initially? The file that get gets loaded initially should be a DOL file.

I looked into it, and it was a dol file originally, and I used some converter to change it to an elf file. It's the same size as the dol file and has the same data besides the header. It still does not appear to have the functions that dolphin shows.

I see functions that start with TRK (TRKReleaseMutex, TRK_ppc_memcpy, etc.) and OS (OSInitAlloc, OSCreateHeap, etc.). I haven't been able to identify others, but it doesn't seem like any of the core game functions are present.
(11-13-2022, 06:27 PM)JosJuice Wrote: [ -> ]Are you sure this is actually what gets loaded initially? The file that get gets loaded initially should be a DOL file.

So I figured it out. The cd has other dol files on it, and it seems that the main dol file (in the system files) loads another dol file that has a lot of the missing functions I was seeing.