For example, when talking to Betamon recruits Coelamon you still only get 1 prosperity point for it.
The first step of the proposed solution is to rewrite the recalcPP function of the game, that gets called when saving the game. This would still leave the PP counter broken until the player saves, but at least provide an easy way to fix it.
For that we intend to encode the prosperity value of each recruited Digimon in the least significant two bits of a Digimon's "height" value. In the above example Betamon's height would have to be set to 162, to represent the prosperity value of 2 Coelamon is giving.
Alternatively 158 would be possible as well, leading to the same result but in certain circumstances a smaller difference from the vanilla value.
For example, when talking to Betamon recruits Coelamon you still only get 1 prosperity point for it.
The first step of the proposed solution is to rewrite the recalcPP function of the game, that gets called when saving the game. This would still leave the PP counter broken until the player saves, but at least provide an easy way to fix it.
For that we intend to encode the prosperity value of each recruited Digimon in the least significant two bits of a Digimon's "height" value. In the above example Betamon's height would have to be set to 162, to represent the prosperity value of 2 Coelamon is giving. Alternatively 158 would be possible as well, leading to the same result but in certain circumstances a smaller difference from the vanilla value.
The relevant ASM code is
An alternative way of storing the prosperity values is using the dead code area of the function...