Faits: Faits: A. A.a S._, né en 1952, a notamment travaillé comme chauffeur de car et déménageur. Souffrant de lombosciatalgies, il a cessé toute activité depuis le 23 décembre 1992 et présenté, le 18 janvier suivant, une demande de prestations de l'assurance-invalidité. En dépit d'une opération pratiquée le 19 mai 1993 pour une petite hernie discale au niveau L5-S1 à gauche, l'assuré a continué à se plaindre de douleurs. Après avoir mis en oeuvre une expertise médicale (rapport des docteurs R._, FMH en médecine interne, et O._, psychiatre, du 14 juillet 1994) ainsi qu'un stage d'observation professionnelle, l'Office AI pour le canton de Vaud (ci-après : l'office AI) a alloué à l'intéressé une demi-rente d'invalidité, fondée sur une incapacité de gain de 60 %, dès le 1er décembre 1992 (décision du 15 décembre 1997). A.b Le 1er avril 1999, S._ a déposé une demande de révision, invoquant une aggravation de son état de santé. L'office AI a mandaté les docteurs C._ et M._ pour se prononcer sur les aspects respectivement somatique et psychique de la situation médicale de l'assuré. Le premier médecin nommé a conclu que la reprise d'une activité adaptée était théoriquement possible (rapport du 9 novembre 2000). Quant au second, il a posé le diagnostic de simulation [CIM-10 Z76.5] (rapport du 1er novembre 2000). Considérant que les éléments contenus dans ces rapports permettaient d'admettre l'existence, chez l'assuré, d'une capacité de travail entière dans une activité adaptée, l'office AI a, par décision du 19 mars 2001, supprimé la rente avec effet au premier jour du deuxième mois suivant la notification de cette décision. A.b Le 1er avril 1999, S._ a déposé une demande de révision, invoquant une aggravation de son état de santé. L'office AI a mandaté les docteurs C._ et M._ pour se prononcer sur les aspects respectivement somatique et psychique de la situation médicale de l'assuré. Le premier médecin nommé a conclu que la reprise d'une activité adaptée était théoriquement possible (rapport du 9 novembre 2000). Quant au second, il a posé le diagnostic de simulation [CIM-10 Z76.5] (rapport du 1er novembre 2000). Considérant que les éléments contenus dans ces rapports permettaient d'admettre l'existence, chez l'assuré, d'une capacité de travail entière dans une activité adaptée, l'office AI a, par décision du 19 mars 2001, supprimé la rente avec effet au premier jour du deuxième mois suivant la notification de cette décision. B. L'assuré a recouru contre cette dernière décision au Tribunal des assurances du canton de Vaud et produit un nouveau document (du 15 janvier 2002) émanant de son médecin traitant, le docteur P._, psychiatre. Le Tribunal a ordonné une expertise judiciaire qu'il a confiée à la doctoresse B._, psychiatre et psychothérapeute. Selon le rapport d'expertise (du 27 août 2003), S._ présentait des troubles psychiques du registre dépressif et psychotique qui empêchaient toute réinsertion professionnelle. Les parties ont eu l'occasion de se déterminer sur ce rapport. Par jugement du 29 avril 2004, la juridiction cantonale a rejeté le recours de l'assuré. Le Tribunal a ordonné une expertise judiciaire qu'il a confiée à la doctoresse B._, psychiatre et psychothérapeute. Selon le rapport d'expertise (du 27 août 2003), S._ présentait des troubles psychiques du registre dépressif et psychotique qui empêchaient toute réinsertion professionnelle. Les parties ont eu l'occasion de se déterminer sur ce rapport. Par jugement du 29 avril 2004, la juridiction cantonale a rejeté le recours de l'assuré. C. S._ interjette recours de droit administratif contre ce jugement, dont il requiert l'annulation. Sous suite de dépens, il invite le Tribunal fédéral des assurances à confirmer son droit à une demi-rente d'invalidité dès le 1er décembre 1992 et à admettre sa demande de révision en ce sens qu'il a droit à une rente entière d'invalidité à partir du dépôt de cette demande. Il sollicite en outre l'assistance judiciaire. L'office AI conclut au rejet du recours, tandis que l'Office fédéral des assurances sociales a renoncé à se déterminer.