Skip to content

Assembly Hacking Reference

Mimi edited this page Apr 7, 2022 · 1 revision

By Deflaktor

Info

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.

Resources and Tutorials

Tutorials

PowerPC Reference

Useful tools

Ghidra

Global Variables

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.

Data Tables

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)

Hardcoded values

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.

Functions

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.