Well, first thing I noticed is that the patch doesn't actually appear to be SA-1 compatible? Unless some of those addresses don't get converted. If it doesn't immediately work, you should try PMing MarioFanGamer
about it since he was the one who supposedly added the SA-1 support to that patch.
Anyway, regarding your other questions though, the freeram is just a single byte which can be any address you want. Preferably, it should be an unused byte, i.e. any address with type "empty" in the RAM map
and which is not used by any other patches you have applied to the ROM (it's recommended you maintain a list of those to prevent issues down the line).
For SA-1 specifically, you should then modify that address according to the standard rules (addresses in $7E00xx becomes $xx, addresses in $7E0100-$7E1FFF drop the 7E and add 6000, so e.g. $7E1DEF becomes $7DEF).
As for freespace, there's a tool called slogger
which will log the available freespace in your hack for you. It will output a list with three columns labeled "PC offset", "LoROM offset", and "size". Pick any row with a size of 0x8000 (= one full bank), then copy the value from the LoROM offset (minus the "0x" at the start). That address is the freespace block to use. For the Mario ExGFX patch in particular, you should then specify that address as $xx9FF8 instead of $xx8000 as slogger gives you.
Professional frame-by-frame time wizard. YouTube
- SMW Glitch List
- SMW Randomizer