Answer to First question
When you want it so that your energy doesn't go down this is what you do.
If you can, search for a known value. Keep doing that till you narrow down where the energy is located.
You don't exactly "freeze" the value in this case. You just make it so that the energy is always at a certain number.
If it is an 8 bit address, you would put
22YYYYYY where Y's = the address.
For the X's you would put 000000XX and the XX are your value. So say you want the energy to always stay at 99, you would have the XX's be 63 (99 in hex). For 16 bit, just do 12 instead of 22, and for 32 bit, replace 12 or 22 with 02.
Now, in the case that you don't know that value, do an initial dump. Then go back to the game, let your energy go down. Search "less than". Let your energy go down again. Search "less than". Repeat till narrowed down. Then, if there is anyway you can make your energy go up, do that and then search "greater than" just so you can narrow it down perfectly. Add the address to your table and try modifying the value of your energy.
For 8 bit, the highest value would be FF (255 in decimal)
For 16 bit, the highest value would be FFFF (65,535 in decimal)
For 32 bit, the highest value would be (4,294,967,295 in decimal) <-You won't use this very often.
To make it so your energy never goes down, just follow those steps.
For 8 bit:
For 16 bit:
For 32 bit:
In your case:
Energy never goes down
8 bit = FF
16 bit = FFFF
32 bit = FFFFFFFF
If you have multiple addresses that modify the energy, just line them up. Here is an example of an 8 bit code.
I hope that explains your first question.Answer to Second Question
To add on to Para: In Yu-Gi-Oh games you usually start out with about 50 cards (40 main deck, 8 side deck, 2 extra deck). You will have to start your search from 50 and keep unlocking from there. Try finding out how many cards are in the game first, multiply that by the amount of copies you want of each card. That number will be the number it should come out with if you do the code right.