in the VBA emulator, you MUST select Flash 128k in the Save Type section for SMA4 ROM to work. I know 'cause I got it to work on the second attempt, not the first. But first delete your old .SAV file for the SMA4 rom if it exists, set the Save Type to Flash 128k (also have the Automatic option checked), then load the SMA4 rom and it will create a new SAV file and the game should run normally the rest of the way. if you don't delete your old SAV file for the SMA4 rom and not let VBA create a new one after selecting the "correct" save type option, you could get persistent save data corrupt errors.
for no$gba, I think you need a gba.rom file (the gba bios file) for sma4 to work correctly with no$gba. otherwise no$gba may crash with the sma4 rom loaded. no need to select save type options as no$gba can correctly set the save type. but the gba.rom bios file is very important and needs to be stored in the same folder as the no$gba emulator.
also, use the latest official versions of either VBA (1.72) or no$gba (2.6 or 2.6a) available.