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
Hello there community! This is my first post here! :3

Background Story and Plead for Help

I have been working hard on modding Animal Crossing for the Gamecube. I am currently in the process of
hardcore reverse engineering. I really need help with finding the source code, after extracting the files from
Dolphin, I used some szs tools to expose the bti and bin files but I can't quite find any source code. In the dolphin
part of the process, I happen to come across a few .MAP files that are hexadecimals instructing the data from the
disc to the game. Is there any way I can access the source code?


I don't care, I just want the runtime environment

Excellent choice there! Anyways, in the directory after extracting AC GC from dolphin, I stumbled upon a few interesting
.MAP files that contains hexadecimals to which direct data from the disc to the game. At the end of the file called "static.map",
I happen to find a VERY interesting string that reads "Runtime.PPCEABI.H.a NMWException.cp". So I thought to myself,
Runtime + PPCEABI. So, I did some research and found that a group called NXP who created a game engine called "CodeWarriors".


Apparently, Nintendo wrote a custom version of this software to make a few Gamecube games. I know that NXP does not
support the CodeWarriors game engine any more.

I would like to know how I can reverse the build for Animal Crossing GC to access it's source code... If it isn't too much of
a challenge for you awesome guys. :3
 

cybrian

Well-Known Member
Member
Joined
Sep 14, 2009
Messages
111
Trophies
1
XP
549
Country
United States
Hello there community! This is my first post here! :3

Background Story and Plead for Help

I have been working hard on modding Animal Crossing for the Gamecube. I am currently in the process of
hardcore reverse engineering. I really need help with finding the source code, after extracting the files from
Dolphin, I used some szs tools to expose the bti and bin files but I can't quite find any source code. In the dolphin
part of the process, I happen to come across a few .MAP files that are hexadecimals instructing the data from the
disc to the game. Is there any way I can access the source code?


I don't care, I just want the runtime environment

Excellent choice there! Anyways, in the directory after extracting AC GC from dolphin, I stumbled upon a few interesting
.MAP files that contains hexadecimals to which direct data from the disc to the game. At the end of the file called "static.map",
I happen to find a VERY interesting string that reads "Runtime.PPCEABI.H.a NMWException.cp". So I thought to myself,
Runtime + PPCEABI. So, I did some research and found that a group called NXP who created a game engine called "CodeWarriors".


Apparently, Nintendo wrote a custom version of this software to make a few Gamecube games. I know that NXP does not
support the CodeWarriors game engine any more.

I would like to know how I can reverse the build for Animal Crossing GC to access it's source code... If it isn't too much of
a challenge for you awesome guys. :3

You will not be able to turn it back to original source code. Forgive me if you’re already aware, but things often vital to understanding the code such as comments and variable names are usually thrown away entirely by the compiler.

You may be able to turn it into source code you can “recompile” into a modified Animal Crossing, but it will probably need to be cleaned up and definitely will be a little tough to understand.
 

FFT

Active Member
Newcomer
Joined
Jan 6, 2016
Messages
41
Trophies
0
Age
32
XP
425
Country
Poland
So, I did some research and found that a group called NXP who created a game engine called "CodeWarriors".

Um, I don't want to ruin your 5 minutes, but just look:
https://www.nxp.com/support/develop...t-tools/codewarrior-development-tools:CW_HOME
https://www.nxp.com/docs/en/data-sheet/950-00120.pdf

It is not and it never was a game engine. Then if you are asking about reverse engineering such complicated compiled stuff, um, good luck. Even simple code for quite basic architecture after decompilation is quite complicated and hard to follow in order to be used, this things are only done for extracting the knowledge about how stuff works or just to modify some portion of the code, nothing more.
 
Last edited by FFT,

cybrian

Well-Known Member
Member
Joined
Sep 14, 2009
Messages
111
Trophies
1
XP
549
Country
United States
Um, I don't want to ruin your 5 minutes, but just look:
https://www.nxp.com/support/develop...t-tools/codewarrior-development-tools:CW_HOME

It is not and it never was a game engine. Then if you are asking about reverse engineering such complicated compiled stuff, um, good luck. Even simple code for quite basic architecture after decompilation is quite complicated and hard to follow in order to be used, this things are only done for extracting the knowledge about how stuff works or just to modify some portion of the code, nothing more.

Oh duh, I forgot NXP bought CodeWarrior. Sounded familiar anyway. CodeWarrior is just a development environment and compiler for, I believe, C and C++. It was used heavily on the classic Macintosh.

Anyway, OP, this is probably a rabbit hole you’re not prepared for. I think if you want to reverse engineer your video games you have a lot to learn, and I do not mean that negatively — the world needs more good reverse engineers.
 

FFT

Active Member
Newcomer
Joined
Jan 6, 2016
Messages
41
Trophies
0
Age
32
XP
425
Country
Poland
Oh duh, I forgot NXP bought CodeWarrior. Sounded familiar anyway. CodeWarrior is just a development environment and compiler for, I believe, C and C++. It was used heavily on the classic Macintosh.

This is what I was talking about, even more it was used for the GameCube programming and not only, because CodeWarrior was used even for older consoles. Regarding the libraries OP have found, they are precompiled libraries which should be statically linked to the main executable, they do not contain anything regarding the game. So "move along, nothing to see here". ;)
 
Last edited by FFT,

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
You will not be able to turn it back to original source code. Forgive me if you’re already aware, but things often vital to understanding the code such as comments and variable names are usually thrown away entirely by the compiler.

You may be able to turn it into source code you can “recompile” into a modified Animal Crossing, but it will probably need to be cleaned up and definitely will be a little tough to understand.

Interesting... Do you think there is a way I could recompile these file into a modified or open sourced Animal Crossing?

If that is the case then I could somehow rebuild the stuff and understand the code to make a documentation for everyone to understand.

My goal is to turn the current GC Animal Crossing into a moddable one along with a documentation. I find it quite fun to learn new things. :3


Oh duh, I forgot NXP bought CodeWarrior. Sounded familiar anyway. CodeWarrior is just a development environment and compiler for, I believe, C and C++. It was used heavily on the classic Macintosh.

Anyway, OP, this is probably a rabbit hole you’re not prepared for. I think if you want to reverse engineer your video games you have a lot to learn, and I do not mean that negatively — the world needs more good reverse engineers.

If that is the case then I am more than glad to take on this challenge! :)

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

This is what I was talking about, even more it was used for the GameCube programming and not only, because CodeWarrior was used even for older consoles. Regarding the libraries OP have found, they are precompiled libraries which should be statically linked to the main executable, they do not contain anything regarding the game. So "move around, nothing to see here". ;)

Interesting... Very interesting...

Maybe there could be a way to extract these compiled libraries.

I am quite excited to continue digging around for more info.

I did found it really useful to search reverse engineering stuff for other GC games because
that helped me with the extracting of the arc files...
 
  • Like
Reactions: TotalInsanity4

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
Um, I don't want to ruin your 5 minutes, but just look:

(links taken out due to gbatemp rules)

It is not and it never was a game engine. Then if you are asking about reverse engineering such complicated compiled stuff, um, good luck. Even simple code for quite basic architecture after decompilation is quite complicated and hard to follow in order to be used, this things are only done for extracting the knowledge about how stuff works or just to modify some portion of the code, nothing more.

On the data sheet you shared, it looks like the CodeWarrior IDE would be my best fit for editing the code once I find it...

I happen to come across a download link to the development suite thanks to a very helpful archive website.

I need to test it out before I share the link... :3
 

lil-g-gamegenius

Member
Newcomer
Joined
Sep 4, 2014
Messages
20
Trophies
0
Age
25
XP
141
Country
United States
You aren't going to be able to "find" the source code in the game. It wasn't made in JavaScript where the source is the executable. Its C++ and everything is compiled and may be obfuscated to make sure it can't be reverse engineered. If you really want to try decompiling it, you better set aside a lot of time to do it. most de-compilations take almost 10+ years to get anything useable, and that's with several people working together.
If you really want to continue, good luck and I'll check on it in 20 years.
 

FFT

Active Member
Newcomer
Joined
Jan 6, 2016
Messages
41
Trophies
0
Age
32
XP
425
Country
Poland
You aren't going to be able to "find" the source code in the game. It wasn't made in JavaScript where the source is the executable. Its C++ and everything is compiled and may be obfuscated to make sure it can't be reverse engineered. If you really want to try decompiling it, you better set aside a lot of time to do it. most de-compilations take almost 10+ years to get anything useable, and that's with several people working together.
If you really want to continue, good luck and I'll check on it in 20 years.

The problem is that he thinks like he discovered something new and is trying to retrieve stuff that isn't there and never was. It's like somebody would try to decompile MSVCRT in order to find something regarding application he or somebody has written... um, nope. :D :D I've tried politely guide him towards obvious fact, but still nope as he has literally no idea what he is doing and what he is talking about.
 
  • Like
Reactions: Deleted User

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
You aren't going to be able to "find" the source code in the game. It wasn't made in JavaScript where the source is the executable. Its C++ and everything is compiled and may be obfuscated to make sure it can't be reverse engineered. If you really want to try decompiling it, you better set aside a lot of time to do it. most de-compilations take almost 10+ years to get anything useable, and that's with several people working together.
If you really want to continue, good luck and I'll check on it in 20 years.

If this takes 10 years. Fine. If this takes me 20 years, sure but I am NOT going to quit.

The problem is that he thinks like he discovered something new and is trying to retrieve stuff that isn't there and never was. It's like somebody would try to decompile MSVCRT in order to find something regarding application he or somebody has written... um, nope. :D :D I've tried politely guide him towards obvious fact, but still nope as he has literally no idea what he is doing and what he is talking about.

I'm sorry. This is my first case of reverse engineering. I care not if I have anyone helping me for I could do this on my own... I am not even the
first person to modify this game. All I am here for is to ask for resources and possible strategies.

Things like this is why people do not try hard enough to do this sort of stuff... This is exactly why there aren't
enough reverse engineers out there.

Also, it's not like I did not read your past messages about the code,
I just did not acknowledge it.

So yeah, if you guys don't want to help me then fine but I actually have corporate level help on my side.
Heck, I could do this without your help.

Maybe even if I do actually do this then I won't even publish it since
no one wants to help me.

One last thing, this isn't my first rodeo in this kind of stuff.

I'm sorry.

Kinda lost control there.

I just need help from you guys for this could really speed up the process.

If I get help from anyone, I will make the
game open source and make documentation
for it.

All I need is your help. gbatemp Is my last place to search for help. :3
 

Shadowfied

Well-Known Member
Member
Joined
Dec 6, 2014
Messages
2,405
Trophies
1
Age
28
XP
3,666
Country
So yeah, if you guys don't want to help me then fine but I actually have corporate level help on my side.
dam, hardcore hax boy. Then why are you asking us to begin with?

Look, we're trying to help you. You obviously have never reverse engineered anything, and you seem to have a tenuous grasp of the meaning of reverse engineering as well. A games source code isn't hidden in the game files. The source code can't be "recovered" . We're just trying to prevent you from searching for something that isn't there.

Find out what you actually want to do first instead of stumbling and wasting your time! :D
 

osaka35

Instructional Designer
Global Moderator
Joined
Nov 20, 2009
Messages
3,741
Trophies
2
Location
Silent Hill
XP
5,958
Country
United States
I applaud your tenacity, and though you'll probably have to change the scope and direction of your efforts, I have no doubt you'll come up with something amazing. Good luck!
 
  • Like
Reactions: yellowface7

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
Interesting...

I know the code is not there but I happened to come across a
smashboard post where someone managed to get the code
for Super Smash Bros Melee...

... I also founded an archived download for the engine used
to make Animal Crossing.

I do have a group of professionals who can help me
but we only meet twice a month.

I'm excited to continue dissect Animal Crossing. :3
 
D

Deleted User

Guest
Interesting...

I know the code is not there but I happened to come across a
smashboard post where someone managed to get the code
for Super Smash Bros Melee...

... I also founded an archived download for the engine used
to make Animal Crossing.

I do have a group of professionals who can help me
but we only meet twice a month.

I'm excited to continue dissect Animal Crossing. :3
You can reverse engineer as the game runes, things like IDA I believe can do that, but you will not and CANNOT find the full real source code. It does not exist in any public fashion, if it even exists in private anymore would be a miracle.
 

yellowface7

Member
OP
Newcomer
Joined
Dec 27, 2016
Messages
16
Trophies
0
Age
33
XP
62
Country
United States
You can reverse engineer as the game runes, things like IDA I believe can do that, but you will not and CANNOT find the full real source code. It does not exist in any public fashion, if it even exists in private anymore would be a miracle.

I see. I have heard of IDA before
and I am currently learning how to
use it.

Maybe I could somehow decipher at least some
of the code and work from there because
Animal Crossing's foresta.map contains some
really helpful code related stuff.

:3
 
Joined
Sep 17, 2009
Messages
2,577
Trophies
2
XP
3,800
Country
United States
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.
 
Last edited by Subtle Demise,

Coto

-
Member
Joined
Jun 4, 2010
Messages
2,979
Trophies
2
XP
2,565
Country
Chile
you need to be friends with PowerPC 750CXe assembly before even touching game code

then IDA or some "decompiler" that allows you to dissect how the binary was made, which is the "files" found on the highest filesystem layer, chunks of binary code separated. Old games (precompiled) didn't have such, but they are pretty much any other compiled binary code that may exist out there
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Well start walking towards them +1