This Age of Empires (U) game uses pointer(s) in pointer(s)... (and might use them in a very complicated way). And my tool is kinda useless for these cases.
In such cases, I believe some asm hack work better...
I just used no$gba, set some bpr on the money value, another bpr on the pointer, and I found where the game was actually loading the money. Then I just made a code to change the ldr to a str, and that's all...
This gives :
Press/release L to replenish money*
(*the game will show 0 money while the button is pressed)
This is 'quick and dirty', means it might (will) give money to everyone, so you might not want to give infinite money to your enemy... (ie. not press L when it's not your turn).
Edit : Indeed, this cheat will work in multiplayer for everyone. Not sure about the npc ennemy.
Or one could also use this code to give 0 money to the active player :
Press/release R to give 0 money
Making use of normal codes is still possible, but they'll be quite big (compared to the asm code).
For exemple (not tested, not sure if it'll work properly - these codes kinda reproduce what the game is doing (it's missing another check though)).
023FE2B4 E1D320B0 - offset support for the type '9' code
023FE2B8 E1E03004 - offset support for the type '9' code
621C2894 00000000 - make sure pointer value != 0
B2105F80 00000000 - load the pointers value into the offset
DC000000 00000088 - adds 0x88 to the offset (= pointer2)
90000008 FFFFFFFF - if [offset+8<>0xffffffff]
90000000 00000000 - test is value != 0
B0000000 00000000 - loads pointer2 in offset
90000378 00000000 - if [pointer2+0x378] !=0
DC000000 00004384 - adds 0x4384 to pointer 2
00000000 YYYYYYYY - YYYYYYYY = money value
And the last (and more accurate) solution would be to create an asm routine that will mimic what the game is doing when accessing to the money value. However, it'll be quite big too, so I still believe the 'quick and dirty asm hacks' are better for these cases...