South African rand firms against weaker dollar