As you asked, here is how I found the in-fight HP(/TP) code (you need the TT of course) :
Enter a fight. Search for the HP of the first player (new 16 bits search, then 'search again' for the value of the HP).
Now make all your players defend. Do this until the first player gets hurt.
Make a 'search again' for the new value of his HPs. You should have 2 results.
Try to change the values of these results, and look if the value change in-game. For my case, only poking the value at 0x0223395C was also changing the value on the NDS screen. You'll also notice doing this that, for the in-fight player data, the health (and all other values) are 32 bits.
Now make a ram dum of 0x02000000-0x02400000. Call it 'etrian' for exemple. Open it with my
Pointer Search tool, and make a pointer search for the address you found (go in the 'Pointer Search' tab, click on 'File 1', select your etrian ram dump, then enter the address you found in 'Address 1', and click 'Go !', then go to the the 'Pointer to ARDS' tab).
I had one match : 020F0F14 0223379C
You'll also see in the left memo of '0223395C'. It's the address we searched for. Add ' 000000FF' to it. Click 'proceed', and you'll have the codes for the health of player 1 :
620F0F14 00000000
B20F0F14 00000000
000001C0 000000FF
D2000000 00000000
That's about it. Now by looking at the values near [020F0F14]+0x1C0 (ie. near 0x0223395C for me) you'll spot the max HP, and the current/max TP. Also, I saw that the next player health data is at 0x2233C54, which means the in-fight player data is 0x2F8 long.
You can also find the statuses, by dying and looking at what value changes.
Also, going at 5*0x2F8+([020F0F14]+0x1C0) (=5*0x2F8+0x0223395C), ie. going to the '6th player', will actually put you at the start of the monsters data (change the value there, and you'll see the health of the first monster decrease).
Sooo... We can do 2 set of in-fight codes here :
One for the Party (max health/tp & cure)
One for the monsters (1 health for exemple).
Code:
Press Select to refill HP/TP and Cure in fight
94000130 FFFB0000
620F0F14 00000000
B20F0F14 00000000
DC000000 000001A0
C0000000 00000004
F2000000 00000004
92000002 00000001
D9000000 00000024
D6000000 00000020
D9000000 00000028
D6000000 00000024
000000B8 00000000
000000C4 00000000
000000D0 00000000
000000DC 00000000
A2000002 00000001
C0000000 00000000
D0000000 00000000
DC000000 000002F0
D2000000 00000000
This code will read the max HP (D9000000 000001C4), and will write it over the current HP (D6000000 000001C0). However, the D6 is an incrementive write, so after it, we'll have offset = offset +4. That's why we don't have D9000000 000001CC for reading the max TP, but D9000000 000001C8 (=0x1CC-4), and same for writing the current TP (0x1C4 instead of 0x1C8). And as this second D6 also adds 4 to the offset, to get the next player data we finaly add 0x2F0 to it (=0x2F8 - 4 - 4) (same for the statuses : they are 'normaly' at pointer+0x260, but as we used 2 D6 codes before, we need to remove 8 from it : 0x260-8=0x258)
Now for the monsters, let's make the 1hp code. Not quite sure how much monsters will there be at max... I finaly set this number to 8 (as you can get up to 8 items after a fight, wouldn't that mean up to 8 monsters are allowed ? - edit : indeed, I checked the game asm and it search the fighters data up to (base address + 13*0x2F8)) :
Code:
Press Start to set monsters HP to 1
94000130 FFF70000
620F0F14 00000000
B20F0F14 00000000
DC000000 00000498
C0000000 0000000B
F2000000 00000004
92000002 00000002
00000020 00000001
D0000000 00000000
92000002 00000000
C0000000 00000000
D0000000 00000000
DC000000 000002F8
D2000000 00000000
These codes will need testing, but they should work.
Of course from there other codes could be made, as there is a lot of data for each player/monster.
Edit : found a small problem with my codes. They were only working properly if there were 5 heroes in the party, which might not be always the case. So I added checks to make sure the codes make the difference between the heroes and the monsters (but it makes the codes a bit longer).
Edit2 : Just in case (might be not necessary), I added some checks to make the 1hp/fullhp code not write to place where there are no monsters/allies. These code should now be final.