Editing Disassembly instructions

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 2: Line 2:
  
 
* The disassembly is still written in PowerPC assembly language, and we only have access to the names of functions, classes, and so on; even then, some of them might be missing. We don't have access to the names of variables or anything like that.
 
* The disassembly is still written in PowerPC assembly language, and we only have access to the names of functions, classes, and so on; even then, some of them might be missing. We don't have access to the names of variables or anything like that.
* The symbol map (i.e. the thing that gives functions, classes, etc. a name) for ''Pikmin 2'' can be found in the final version of the game but the demo version of the game, the one found inside of a multi-game demo disc 17. has a more complete map than final. These instructions apply to that demo. For most purposes, it's good enough, since the code should be very similar to the final game. You can apply this guide to the final version of ''Pikmin 2'', but you won't be able to get the symbol map working without a lot of effort.
+
* The symbol map (i.e. the thing that gives functions, classes, etc. a name) for ''Pikmin 2'' can only be found in a demo of the game inside of a multi-game demo disc. These instructions apply to that demo. For most purposes, it's good enough, since the code should be very similar to the final game. You can apply this guide to the final version of ''Pikmin 2'', but you won't be able to get the symbol map working without a lot of effort.
  
 
== Getting the necessary files ==
 
== Getting the necessary files ==
Line 24: Line 24:
 
== Setting up a disassembly environment ==
 
== Setting up a disassembly environment ==
 
=== Basics ===
 
=== Basics ===
# Install [https://ghidra-sre.org Ghidra] (and maybe familiarize yourself with how it works).
+
# Install [https://github.com/Cuyler36/Ghidra-GameCube-Loader Ghidra] (and maybe familiarize yourself with how it works).
# Go to the [https://github.com/aldelaro5/ghidra-gekko-broadway-lang Ghidra Gekko/Brodway language project], and follow the instructions to install it on Ghidra.
 
# Go to the [https://github.com/Cuyler36/Ghidra-GameCube-Loader Ghidra GameCube loader project], and follow the instructions to install it on Ghidra.
 
 
# In Ghidra, create a project for the game you want, and add that respective game's <code>.dol</code> file you extracted to the project. The type should be detected automatically, but if not, you should select Nintendo GameCube Binary for the format, and PowerPC:BE:32:Gekko_Brodway:default for the language.
 
# In Ghidra, create a project for the game you want, and add that respective game's <code>.dol</code> file you extracted to the project. The type should be detected automatically, but if not, you should select Nintendo GameCube Binary for the format, and PowerPC:BE:32:Gekko_Brodway:default for the language.
 
# When asked if you want to include a symbol map, choose yes, and pick the <code>.map</code> file you extracted.
 
# When asked if you want to include a symbol map, choose yes, and pick the <code>.map</code> file you extracted.

Please note that all contributions to Pikmin Technical Knowledge Base are considered to be released under the Creative Commons Attribution-ShareAlike (see Pikmin Technical Knowledge Base:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)

Template used on this page: