deathknight1728: I am playing Pkmon Emerald so would any of the starters or early pkmon be any good? I thought that I could use lotad because he is water/grass so he can destroy fire and water as well. I don't know how late he will get his 3rd trans though.
Blaziken is probably your best bet for the gen 3 starters, since it has decent speed, excellent attack, and a usable movepool. A moveset like Brick Break, Flamethrower, Earthquake, and Rock Slide would be good. Those moves have good accuracy and power, and good type coverage with each other. You'll be iffy against flying-types until you get Rock Slide, but after that point you should be able to handle everything.
Sceptile has a horrible movepool, learning almost nothing useful on its own and having poor TM compatibility; I really can't recommend it. Swampert is more defensively-oriented, and matches up poorly against the champion's team so he'd be a poor pick for soloing.
I'd have to run through the pokedex in detail to look for an ideal selection. A big problem is that I'm more thinking in terms of generation 6 rules, and there's a
big difference between generation 3 and generation 6. Heck, I was
this close to suggesting Gardevoir for a solo-run before remembering that it's largely powerless against dark-types in generation 3.
NoNewTaleToTell: I'm going to tentatively say that I don't think you can solo them, at least not Crystal. Certain Gyms require certain HM moves like Surf and Strength to reach and off the top of my head I can't think of any Pokemon that can learn two or more HM moves. I could be wrong, but like I said that's just off the top of my head and I've not really played a Pokemon game in the past three or four years.
Generally the presumption is that you're allowed "slaves" in the back of your team who don't participate in battle but handle a variety of HM moves. Emerald has more than 4 required HM moves, so it would be outright impossible to do everything the game requires of you with a single team member.
However, there are a number of pokemon that can learn a large number of HM moves. Bibarel and Tropius are good examples of pokemon that can learn a full slate of HM moves and go a long way to reducing the load on the rest of your party.