Faits: Faits: A. La société X._, actuellement dissoute, a fourni des services fiduciaires à une personne morale constituée aux Bahamas, Y._. Son siège social se trouvait à Genève; A._ était son administrateur unique, avec droit de signature individuelle. A l'intention de l'administration fiscale cantonale, A._ a créé le 10 août 1999 un document intitulé "liste récapitulative" concernant l'imposition à la source des salariés étrangers. Au nom de X._, il indiquait que celle-ci avait rétribué trois salariés étrangers pendant l'année 1998, pour un montant total de 222'000 fr.; sur ses prestations, la société avait retenu un impôt total de 25'496 fr.; après déduction d'une commission de perception de 3%, elle déclarait devoir verser 24'731 fr.10 à l'administration. Le versement n'étant pas intervenu, la société a reçu une sommation formelle datée du 29 mai 2000, comportant un délai d'exécution de trente jours et la menace d'une poursuite pour dettes et d'une dénonciation pénale. En dépit de cette sommation et des avertissements ultérieurs adressés à A._ personnellement, l'impôt est resté impayé. Le versement n'étant pas intervenu, la société a reçu une sommation formelle datée du 29 mai 2000, comportant un délai d'exécution de trente jours et la menace d'une poursuite pour dettes et d'une dénonciation pénale. En dépit de cette sommation et des avertissements ultérieurs adressés à A._ personnellement, l'impôt est resté impayé. B. Prévenu de détournement de l'impôt à la source, A._ a comparu devant le Tribunal de police du canton de Genève. Il a fait entendre divers témoins et expliqué les rapports existant entre X._ et Y._; il soutenait que la liste récapitulative du 10 août 1999 avait été établie dans le cadre des services fiduciaires fournis à celle-ci et que la société gérée par lui n'avait employé aucun salarié ni versé aucune prestation imposable en 1998. Les prestations avaient été payées par Y._ et c'est à elle qu'il incombait de retenir et verser l'impôt à la source. Statuant le 3 juin 2003, le Tribunal de police a rejeté cette argumentation; il a reconnu A._ coupable de détournement de l'impôt à la source et l'a condamné à une amende de 5'000 fr. B. Prévenu de détournement de l'impôt à la source, A._ a comparu devant le Tribunal de police du canton de Genève. Il a fait entendre divers témoins et expliqué les rapports existant entre X._ et Y._; il soutenait que la liste récapitulative du 10 août 1999 avait été établie dans le cadre des services fiduciaires fournis à celle-ci et que la société gérée par lui n'avait employé aucun salarié ni versé aucune prestation imposable en 1998. Les prestations avaient été payées par Y._ et c'est à elle qu'il incombait de retenir et verser l'impôt à la source. Statuant le 3 juin 2003, le Tribunal de police a rejeté cette argumentation; il a reconnu A._ coupable de détournement de l'impôt à la source et l'a condamné à une amende de 5'000 fr. C. A._ a appelé du jugement à la Cour de justice. Il a alors soutenu que les montants portés sur la liste récapitulative correspondaient à des participations au bénéfice de Y._, prélevées par des ayants droit à ce bénéfice. C'est par erreur qu'il avait établi cette liste, compte tenu que lesdits montants, faute de correspondre à la rétribution d'une activité dépendante, ne constituaient pas des salaires assujettis à l'impôt à la source. La Cour de justice a elle aussi interrogé deux témoins produits par l'appelant. L'un d'eux ignorait la cause de ces versements mais, selon ses affirmations, il ne s'agissait pas de salaires. L'autre confirmait que les destinataires étaient des associés prélevant leur participation au bénéfice de l'entreprise. Par arrêt du 14 juin 2004, la Cour de justice a confirmé le jugement. Les justifications de l'appelant lui ont paru confuses et tardives. Sur la base de l'un des témoignages recueillis par le Tribunal de police, elle a constaté que les trois bénéficiaires des prestations avaient été ouvertement présentés en qualité d'employés de X._; le verdict devait donc être confirmé sans qu'il fût nécessaire d'élucider la cause réelle des versements reçus par eux. Par arrêt du 14 juin 2004, la Cour de justice a confirmé le jugement. Les justifications de l'appelant lui ont paru confuses et tardives. Sur la base de l'un des témoignages recueillis par le Tribunal de police, elle a constaté que les trois bénéficiaires des prestations avaient été ouvertement présentés en qualité d'employés de X._; le verdict devait donc être confirmé sans qu'il fût nécessaire d'élucider la cause réelle des versements reçus par eux. D. Agissant par la voie du recours de droit public, A._ requiert le Tribunal fédéral d'annuler l'arrêt de la Cour de justice. Invoquant la protection contre l'arbitraire et le droit d'être entendu garantis, respectivement, par les art. 9 et 29 al. 2 Cst., il soutient que les juges d'appel ont violé ces dispositions en refusant de prendre en considération les témoignages aptes à confirmer sa propre version des faits. Invités à répondre, la Cour de justice et le Procureur général du canton de Genève ont renoncé à déposer des observations. 