Complete the sinnoh dex
You can catch makuhita in the fighting area in Pokemon diamond
in the servile area
At the resort area
In Pokemon Diamond you can catch the Kangaskhan in the Great Marsh area. This area is available to the player once they unlock the National Pokedex.
beat the Pokemon league
Any Pokemon that are in the area that you are using it.
To get a Venusaur on Pokemon Diamond you have to get the National Pokedex and look for its area, if it's unknown then I don't know what to do.
At the fight area (after you beat the Pokemon league)
in fight area
Hearthome city
The safari area
The video game character Tyson may be encountered in Pokemon Diamond at Battle Area. He is located near the awards area at the Battle Tower.