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 1: Line 1:
The following guide will teach you how to get a disassembler environment with ''Pikmin'' or ''Pikmin 2''<nowiki>'s</nowiki> code, complete with the symbol map. Some things to keep in mind:
+
{{DISPLAYTITLE:''Pikmin 2'' disassembly instructions}}
 
+
The following guide will teach you how to get a disassembler environment with ''Pikmin 2'''s code, complete with the symbol map. Some things to keep in mind:
 +
* The symbol map (i.e. the thing that gives functions, classes, etc. a name) can only be found in a ''Pikmin 2'' demo 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.
 
* 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.
 
  
 
== Getting the necessary files ==
 
== Getting the necessary files ==
=== ''Pikmin'' ===
 
# Obtain any copy of ''Pikmin'', as long as it's on the GameCube.
 
# Add it to Dolphin's game list.
 
# Right-click it, Properties, Filesystem:
 
## Right-click Disc at the top of the tree, Extract DOL..., and extract it somewhere.
 
## Right-click <code>/dataDir/build.map</code>, Extract File..., and extract it somewhere.
 
 
=== ''Pikmin 2'' ===
 
 
# Obtain the Multi Game Demo Disc Version 17 (US).
 
# Obtain the Multi Game Demo Disc Version 17 (US).
 
# Add it to Dolphin's game list.
 
# Add it to Dolphin's game list.
Line 20: Line 13:
 
# Right-click the ''Pikmin 2'' demo in Dolphin's game list, Properties, Filesystem:
 
# Right-click the ''Pikmin 2'' demo in Dolphin's game list, Properties, Filesystem:
 
## Right-click Disc at the top of the tree, Extract DOL..., and extract it somewhere.
 
## Right-click Disc at the top of the tree, Extract DOL..., and extract it somewhere.
## Right-click <code>pikmin2UP.MAP</code>, Extract File..., and extract it somewhere.
+
## Find <code>pikmin2UP.MAP</code>, right-click it, Extract File..., and extract it somewhere.
  
 
== Setting up a disassembly environment ==
 
== Setting up a disassembly environment ==
Line 27: Line 20:
 
# 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/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.
 
# 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 ''Pikmin 2'', and add the .dol file you extracted to the project. The type should be detected automatically, but you should select GameCube game.
# 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 .MAP file you extracted.
# Drag the <code>.dol</code> file to the CodeBrowser tool. When prompted to analyze the project, press Yes, and go with the defaults.
+
# Drag the .dol file to the CodeBrowser tool. When prompted to analyze the project, press Yes, and go with the defaults.
  
 
=== Details ===
 
=== Details ===
==== ''Pikmin 2'' ====
 
 
# In the disassembly pane, select all with Ctrl+A.
 
# In the disassembly pane, select all with Ctrl+A.
 
# Right-click, Set Register Values...
 
# Right-click, Set Register Values...
Line 40: Line 32:
 
{{credits|[[User:Espyo|Espyo]], [[User:Yoshi2|Yoshi2]]}}
 
{{credits|[[User:Espyo|Espyo]], [[User:Yoshi2|Yoshi2]]}}
  
[[Category:Pikmin]]
 
 
[[Category:Pikmin 2]]
 
[[Category:Pikmin 2]]
 
[[Category:Notes]]
 
[[Category:Notes]]

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: