-
Notifications
You must be signed in to change notification settings - Fork 42
Assembly Hacking Reference
In this page there are some important virtual addresses stored. All addresses on this page are Boom Street Virtual Addresses. If you want to get the corresponding Fortune Street address, here is the entire delta mapping of Boom Street Virtual Address to Fortune Street Virtual Address:
0x80000100 to 0x8007a283: 0x0
0x8007a2f4 to 0x80268717: 0x54
0x80268720 to 0x8040d97b: 0x50
0x8040d980 to 0x8041027f: 0x40
0x804105f0 to 0x8044ebe7: 0x188
0x8044ec00 to 0x804ac804: 0x1A0
0x804ac880 to 0x8081f013: 0x200
So for example if you want to convert the Boom Street Virtual Address 0x80410648 (beginning of Venture Card Table) to the corresponding Fortune Street Virtual Address it would be 0x80410648 - 0x188 = 0x804104C0
There is also a calculator for that here: https://fortunestreetmodding.github.io/
Some of the virtual addresses do not have a physical address. This means that they are calculated during run time of the game and cannot be hex editted. All global variables are normally like that.
- https://wiibrew.org/wiki/Assembler_Tutorial
- https://mkwii.com/showthread.php?tid=940
- https://smashboards.com/threads/assembly-guides-resources-q-a.397941/
- http://wiki.tockdom.com/wiki/Compiler#ABI
- https://sametwice.com/rlwinm
- https://mkwii.com/showthread.php?tid=434
- Quick Reference: http://class.ece.iastate.edu/arun/CprE281_F05/lab/labw10a/Labw10a_Files/PowerPC%20Assembly%20Quick%20Reference.htm
- In-Depth: http://math-atlas.sourceforge.net/devel/assembly/ppc_isa.pdf
Ghidra
- https://ghidra-sre.org/ current version of the ghidra shared project is 10.1.2
- https://github.com/aldelaro5/ghidra-gekko-broadway-lang
- https://github.com/Cuyler36/Ghidra-GameCube-Loader
Click to expand!
Virtual Address | Name/Symbol | Structure | Description |
---|---|---|---|
0x8055240c | Rule Set | Byte | 0 = Standard Mode, 1 = Easy Mode |
0x8054d018 | Game Board | Array of x Square. Each square takes 0x54 bytes | Here the current board data is stored in memory. There is a fixed amount of space allocated for it, that is the reason why having too many squares can crash the game. |
0x8055242c | Board Square Count | Byte | This variable holds the amount of squares the current board has. Since this is a signed byte value, its max value is 127. But the game crashes way before that. |
0x805521bc | Venture Card Table | 128 short values | This table holds the currently loaded in-game venture cards. |
Click to expand!
Virtual Address | Name/Symbol | Structure | Description |
---|---|---|---|
0x80453b38 | Gm::Place::RankTable | 6 integer values | The values at which the next higher model of the shop is shown |
0x80453b50 | Gm::Place::CalcGain@payrate | 6 integer values | Determines how the pay rate increases depending on the amount of shops owned in the same district |
0x80453b68 | Gm::Place::CalcGain@gainrate | 12 integer values | Determines how the value increases depending on the amount of shops owned in the same district |
0x80453b98 | Gm::Player::CalcCommission@rate | 4 integer values | The values for the different commision types (boon square, boom square, venture card 118) |
Click to expand!
Virtual Address | Name/Symbol | Data type | Description |
---|---|---|---|
0x80815734 | Game::GPProcMonopoly::Proc | Integer | During auctions this is the bid increase value 10. |
0x80173BFA | Tutorial Map Easy | Short | The id of the map that is loaded when starting the easy tutorial. |
0x80173c06 | Tutorial Map Standard | Short | The id of the map that is loaded when starting the standard tutorial. |
Click to expand!
Virtual Address | Name/Symbol | Description |
---|---|---|
0x800fbd4c | Game::GPProcMoveStop::ProcShip | The function determines how yoshi island lift and magmalice hands behave |
0x8007e148 | stw r25,0x53f4(r29) | Sets the rule set of the currently selected board. Change from 933d53f4 to 60000000 (NOP) to have always standard rules. |