GCN I found Animal Crossing's runtime environment

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
I see. I do have access to pretty much all of the games files
but the the file that glues everything together (foresta.map) seems to
contain names of other file names that I cannot access.

Files that have easy to understand extensions like .txt and .object

I assume that these files are in the .bin files that I have found.

Also, shouldn't .bin files be accompanied by .cue files?
Animal Crossing does not contain any .cue files that I
know of.

The other posts on this thread that talked about powerpc and IDA
are helping me a lot. :3

--------------------- MERGED ---------------------------

Considering the game was originally on the Nintendo 64, there's probably a lot of hacky, low-level stuff going on, even more so when they ported it over to the GameCube. The game is not using a commercial mainstream game engine. It could even be running some kind of custom dynamic recompiler written specifically for the game for all I know, which would make reversing it even more difficult.

True, this game was originally on the N64 BUT
it was technically made with a mainstream
engine (or at least mainstream to the Nintendo
Developer community).

I also would like to note that the N64 version of
Animal Crossing has a translation hack. So that
means that the N64 version appears to be hackable.

Maybe I could find a list of programs used to reverse
engineer the N64 version and then find similar programs
that are made for the GC version.
 

NWPlayer123

Well-Known Member
Member
Joined
Feb 17, 2012
Messages
2,642
Trophies
0
Location
The Everfree Forest
XP
6,693
Country
United States
I see. I do have access to pretty much all of the games files
but the the file that glues everything together (foresta.map) seems to
contain names of other file names that I cannot access.

Files that have easy to understand extensions like .txt and .object

I assume that these files are in the .bin files that I have found.

Also, shouldn't .bin files be accompanied by .cue files?
Animal Crossing does not contain any .cue files that I
know of.

The other posts on this thread that talked about powerpc and IDA
are helping me a lot. :3

--------------------- MERGED ---------------------------



True, this game was originally on the N64 BUT
it was technically made with a mainstream
engine (or at least mainstream to the Nintendo
Developer community).

I also would like to note that the N64 version of
Animal Crossing has a translation hack. So that
means that the N64 version appears to be hackable.

Maybe I could find a list of programs used to reverse
engineer the N64 version and then find similar programs
that are made for the GC version.
I don't think you understand the scale of what you're wanting to do, very few people have done so and lived to tell the tale, only ones in recent memory are Newer Super Mario Bros. Wii and Project M, which had to manually recreate source code to make changes, and it took multiple people *years* for it to get where it is. If you're still so inclined I guess I can explain some stuff.
You cannot access them cuz they don't exist, foresta.map and static.map are "symbol maps" from when the game was compiled, it output all the function names to the MAP files when it compiled each .c/.cpp file, your only option is to recreate the source code by staring at the bytecode in IDA for days and weeks and months and recreating what it does back into C/C++, I've been poking at it for 3 weeks and I've barely scratched the surface (also my code is very shitty rn)
https://github.com/NWPlayer123/Resources/tree/master/GameCube/GAFE01
If you wanna know more, game is booted via an Initial Program Loader (IPL.bin) on the GameCube or something similar on the Wii, which loads sys/apploader.img into memory, that's the first game code running, which itself just loads main.dol into memory. main.dol is where all the good stuff happens, and in Animal Crossing they also made the foresta.rel.szs you see. main.dol loads it into memory and it's just additional code. static.map and foresta.map just give addresses and function names for all the functions in the dol and rel. You won't find any .cue on GameCube/Wii, anything in /files is all the data it uses, and /sys is all the code it uses (with some additional stuff you can ignore).
This is a very big undertaking cause not only do you have to recreate the bytecode in C/C++, you have to make a way to load your modifications on a GameCube/Wii, which is probably the worst part.
 

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
I don't think you understand the scale of what you're wanting to do, very few people have done so and lived to tell the tale, only ones in recent memory are Newer Super Mario Bros. Wii and Project M, which had to manually recreate source code to make changes, and it took multiple people *years* for it to get where it is. If you're still so inclined I guess I can explain some stuff.
You cannot access them cuz they don't exist, foresta.map and static.map are "symbol maps" from when the game was compiled, it output all the function names to the MAP files when it compiled each .c/.cpp file, your only option is to recreate the source code by staring at the bytecode in IDA for days and weeks and months and recreating what it does back into C/C++, I've been poking at it for 3 weeks and I've barely scratched the surface (also my code is very shitty rn)
https://github.com/NWPlayer123/Resources/tree/master/GameCube/GAFE01
If you wanna know more, game is booted via an Initial Program Loader (IPL.bin) on the GameCube or something similar on the Wii, which loads sys/apploader.img into memory, that's the first game code running, which itself just loads main.dol into memory. main.dol is where all the good stuff happens, and in Animal Crossing they also made the foresta.rel.szs you see. main.dol loads it into memory and it's just additional code. static.map and foresta.map just give addresses and function names for all the functions in the dol and rel. You won't find any .cue on GameCube/Wii, anything in /files is all the data it uses, and /sys is all the code it uses (with some additional stuff you can ignore).
This is a very big undertaking cause not only do you have to recreate the bytecode in C/C++, you have to make a way to load your modifications on a GameCube/Wii, which is probably the worst part.

This is very helpful.

If that is all it takes, then I am quite happy
to do this.

I really appreciate your exclamation on the process
of how the .rel.szs was created...

Do you think that it can be possible to obtain an ISO
of the game before it was prepared for it?

Or maybe reverse such process?

I am quite interested on knowing. :3
 

iAqua

Member
Joined
Dec 7, 2015
Messages
2,848
Trophies
1
Location
XP
2,476
Country
United Kingdom
I am quite interested on knowing. :3
I'm sorry but i'm kinda confused, are you the one doing this, or are you asking for someone to do this for you. Like nwplayer said I don't think you understand the scale of decompiling a game... Also, why? Why would you want to get the source from an old obsolete game? Imho this seems like a giant goose chase.
 
  • Like
Reactions: yellowface7

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
I'm sorry but i'm kinda confused, are you the one doing this, or are you asking for someone to do this for you. Like nwplayer said I don't think you understand the scale of decompiling a game... Also, why? Why would you want to get the source from an old obsolete game? Imho this seems like a giant goose chase.

I am doing this with a small group.

You are right. I don't understand the scale
but with the help from you guys, we can
greatly decrease the time it takes to do this.

I did this for many reasons.

I want gamecube games to be moddable.
I also want to make it accessible to the public.

I find challenges quite fun.

Another thing about the group I am in,

I am a member of an IT club hosted in
the headquarters of an organization.
We do a project yearly and present it
to the rest of the club. The staff helped me
a lot with my understanding of this.

If anyone have any questions I could ask
the staff, I am more than happy to ask them.


I hope this clears some things up. :3
 

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
I also seem to have noticed that the bin files are
accompanied by other bin files of similar names
but with the suffix of 'data table'.
 

NWPlayer123

Well-Known Member
Member
Joined
Feb 17, 2012
Messages
2,642
Trophies
0
Location
The Everfree Forest
XP
6,693
Country
United States
I also seem to have noticed that the bin files are
accompanied by other bin files of similar names
but with the suffix of 'data table'.
Again, I don't think you know what you're getting into. Simple file modifications with no code changes are easier and what most modders do, but you still gotta understand what data the files contain. Usually, the best strategy is to pick out one thing you want to modify and then you track down where it is and try to make that modification, e.g. editing a string which would require editing the two string_data files in forest_1st.arc and rebuilding that RARC file. string_data.bin has the actual strings, string_data_table.bin has offsets to the end of each string, and the game probably checks [index-1] to [index] to read the string from the string_data.bin file (index being the 4 byte offset in the table, cuz game asks for e.g. string index 33, not the actual string data, that would require searching the entire file). If you didn't understand what I just said, you're probably not gonna get very far.
 

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
Again, I don't think you know what you're getting into. Simple file modifications with no code changes are easier and what most modders do, but you still gotta understand what data the files contain. Usually, the best strategy is to pick out one thing you want to modify and then you track down where it is and try to make that modification, e.g. editing a string which would require editing the two string_data files in forest_1st.arc and rebuilding that RARC file. string_data.bin has the actual strings, string_data_table.bin has offsets to the end of each string, and the game probably checks [index-1] to [index] to read the string from the string_data.bin file (index being the 4 byte offset in the table, cuz game asks for e.g. string index 33, not the actual string data, that would require searching the entire file). If you didn't understand what I just said, you're probably not gonna get very far.

I do understand what you said there.

I did extract the arc file and I am
tracking down some things.

:3
 
D

Deleted User

Guest
Then at the very least go and learn something else first. Hell, you thought the internal .bin files had .cue files. You are WAY out of your league. Dream big, but start small first.
 
  • Like
Reactions: Shadowfied
D

Deleted User

Guest
That's what I am currently doing bud. :3
But you aren't, and that's something that you're sticking your fingers in your ears and going LALALALALALALA in order to ignore everyone. Chasing source code is HUGE, so few people can do it. Think of the game like a black room, and you're first trying to get into it, the door is locked, and the key doesn't exist. You need a way to break the door down. Then in the dark, you need to feel out where everything is, and why it's there.

Honestly, if you have to ask, you're way out of your league. Start smaller. Much smaller.
 
  • Like
Reactions: yellowface7

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
But you aren't, and that's something that you're sticking your fingers in your ears and going LALALALALALALA in order to ignore everyone. Chasing source code is HUGE, so few people can do it. Think of the game like a black room, and you're first trying to get into it, the door is locked, and the key doesn't exist. You need a way to break the door down. Then in the dark, you need to feel out where everything is, and why it's there.

Honestly, if you have to ask, you're way out of your league. Start smaller. Much smaller.

I am fully aware.

I am not ignoring anyone either.

I am just busy doing research friend. :3
 

dAVID_

Well-Known Member
Member
Joined
Oct 23, 2016
Messages
1,405
Trophies
1
Location
The Game
XP
2,276
Country
Mexico
I'm no programmer, but I know that you are way too optimistic, and it can be pretty stressing to find out that you did something wrong, when you were hoping for the correct result. You are way out of your league, do you know how all crackers hacked consoles and computers?
By making random inputs, and trying to find any possible form of outputs. Once you actually find these outputs, you have to know what they mean. Imagine learning a language, by seeing people speak it.
Yeah, it's definitely possible, but you would have to do intense research and testing every possible sentence structure until you test it on a native and you finally get it right.
 

Shadowfied

Well-Known Member
Member
Joined
Dec 6, 2014
Messages
2,405
Trophies
1
Age
28
XP
3,666
Country
I'm no programmer, but I know that you are way too optimistic, and it can be pretty stressing to find out that you did something wrong, when you were hoping for the correct result. You are way out of your league, do you know how all crackers hacked consoles and computers?
By making random inputs, and trying to find any possible form of outputs. Once you actually find these outputs, you have to know what they mean. Imagine learning a language, by seeing people speak it.
Yeah, it's definitely possible, but you would have to do intense research and testing every possible sentence structure until you test it on a native and you finally get it right.
He's completely immune to our words.
He's either insane, or a troll.
Let's move on.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: I cant tell what my favorite N64 game is