Faits:
Faits:
A. Par jugement du 5 janvier 2004, le Tribunal de police du canton de Genève a condamné A._ à 20 jours d'emprisonnement avec sursis durant trois ans, pour violation d'une obligation d'entretien, sur plainte du Service genevois d'avance et de recouvrement des pensions alimentaires (Scarpa) couvrant la période de mai 2000 à avril 2002. Débiteur de 1300 fr. de pension par mois, l'accusé n'avait payé que 280 fr. par mois jusqu'en août 2001, alors que les indemnités journalières qu'il percevait de la SUVA (3500 fr. par mois) lui auraient permis de verser davantage. Tel n'était pas le cas pour la période suivante, l'accusé ne touchant plus qu'une rente de 765 fr. par mois.
A. Par jugement du 5 janvier 2004, le Tribunal de police du canton de Genève a condamné A._ à 20 jours d'emprisonnement avec sursis durant trois ans, pour violation d'une obligation d'entretien, sur plainte du Service genevois d'avance et de recouvrement des pensions alimentaires (Scarpa) couvrant la période de mai 2000 à avril 2002. Débiteur de 1300 fr. de pension par mois, l'accusé n'avait payé que 280 fr. par mois jusqu'en août 2001, alors que les indemnités journalières qu'il percevait de la SUVA (3500 fr. par mois) lui auraient permis de verser davantage. Tel n'était pas le cas pour la période suivante, l'accusé ne touchant plus qu'une rente de 765 fr. par mois.
B. Par arrêt du 22 mars 2004, la Chambre pénale de la Cour de justice genevoise a rejeté l'appel formé par A._. Les revenus de l'appelant lui permettaient d'assumer ses obligations alimentaires plus largement qu'il ne l'avait fait. Dès octobre 2001, ses moyens s'étaient réduits, de sorte que le défaut de paiement n'était plus fautif; le délai de plainte commençait à courir dès cet instant, pour autant toutefois que le plaignant en soit informé. Or, il n'était pas établi que le Scarpa ait été informé de la situation financière de l'appelant de sorte que sa plainte, déposée le 3 mai 2002, n'était pas tardive.
B. Par arrêt du 22 mars 2004, la Chambre pénale de la Cour de justice genevoise a rejeté l'appel formé par A._. Les revenus de l'appelant lui permettaient d'assumer ses obligations alimentaires plus largement qu'il ne l'avait fait. Dès octobre 2001, ses moyens s'étaient réduits, de sorte que le défaut de paiement n'était plus fautif; le délai de plainte commençait à courir dès cet instant, pour autant toutefois que le plaignant en soit informé. Or, il n'était pas établi que le Scarpa ait été informé de la situation financière de l'appelant de sorte que sa plainte, déposée le 3 mai 2002, n'était pas tardive.
C. A._ forme un recours de droit public, avec demande d'effet suspensif et d'assistance judiciaire. Il requiert l'annulation de l'arrêt cantonal.
La Cour de justice se réfère aux considérants de son arrêt. Le Procureur général conclut au rejet du recours et de la demande d'effet suspensif. Le Scarpa s'en rapporte à justice.
Par ordonnance présidentielle du 26 mai 2004, l'effet suspensif a été accordé.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. Le recours est formé en temps utile contre un arrêt rendu en dernière instance cantonale. Le recourant ne se plaint pas d'une violation du droit fédéral, mais exclusivement d'arbitraire dans la constatation des faits. Seul le recours de droit public est par conséquent recevable (art. 269 PPF). Le recourant, dont la condamnation se trouve confirmée, a qualité pour recourir (art. 88 OJ).
1. Le recours est formé en temps utile contre un arrêt rendu en dernière instance cantonale. Le recourant ne se plaint pas d'une violation du droit fédéral, mais exclusivement d'arbitraire dans la constatation des faits. Seul le recours de droit public est par conséquent recevable (art. 269 PPF). Le recourant, dont la condamnation se trouve confirmée, a qualité pour recourir (art. 88 OJ).
2. La Chambre pénale a considéré que le délai de plainte ne commençait à courir, en cas de violation d'une obligation d'entretien, que depuis la dernière omission coupable. Elle a admis que dès octobre 2001, le défaut de paiement n'était plus coupable car le recourant ne disposait plus de moyens suffisants. Toutefois, selon la cour cantonale, aucune pièce ne figurait au dossier permettant de penser que le plaignant avait été informé de ce changement de situation.
Le recourant se plaint à ce sujet d'arbitraire. Il avait produit en appel le procès-verbal d'une audience de comparution personnelle tenue le 14 décembre 2001 devant le Tribunal de première instance. En présence du représentant du Scarpa, le recourant avait annoncé qu'il ne percevait plus d'indemnités journalières de la SUVA et recevait seulement, depuis deux mois, des prestations de l'Hospice général. Le recourant en déduit que le Scarpa connaissait son impécuniosité depuis le 14 décembre 2001, et que le délai de plainte expirait à mi-mars 2002.
2.1 Il y a arbitraire, prohibé par l'art. 9 Cst., lorsque la décision attaquée viole gravement une règle ou un principe juridique clair et indiscuté ou lorsqu'elle contredit d'une manière choquante le sentiment de la justice ou de l'équité. S'agissant de l'appréciation des preuves, il y a arbitraire lorsque le juge n'a manifestement pas compris le sens et la portée d'un moyen de preuve, s'il a omis sans raison sérieuse de tenir compte d'un moyen pertinent ou encore si, sur la base des éléments recueillis, il a fait des déductions insoutenables (<ref-ruling> consid. 2.1 p. 9; <ref-ruling> consid. 2.1 p. 275 et la jurisprudence citée).
2.2 Selon le procès-verbal précité, dressé dans le cadre d'une procédure dont on ignore l'objet, le recourant a indiqué, en présence du représentant du Scarpa, que les indemnités SUVA avaient été supprimées et que, depuis deux mois, il ne recevait plus que des indemnités de l'Hospice général, dont le montant n'est pas précisé. Il est encore mentionné que la SUVA n'avait pas pris de décision au sujet d'une rente et n'avait fait que suspendre le versement des indemnités journalières. Le recourant s'engageait à produire toute pièce utile attestant de sa "véritable situation".
L'arrêt attaqué passe totalement sous silence cette pièce produite en appel par le recourant. L'affirmation selon laquelle aucune pièce ne permettrait de penser "que l'appelant a donné des informations sur sa situation" est manifestement contraire au dossier, et partant arbitraire. La cour cantonale a peut-être considéré que les indications données lors de l'audience du 14 décembre 2001 n'étaient pas suffisantes pour tenir le plaignant pour informé d'un changement de situation. Rien dans la décision attaquée ne permet toutefois de déterminer si la preuve offerte a été appréciée, ou si elle a été totalement ignorée. Tel qu'il est motivé, l'arrêt cantonal apparaît arbitraire et doit, partant, être annulé. La cause est renvoyée à la Chambre pénale afin qu'elle se prononce formellement au sujet de la pièce déposée par le recourant.
L'arrêt attaqué passe totalement sous silence cette pièce produite en appel par le recourant. L'affirmation selon laquelle aucune pièce ne permettrait de penser "que l'appelant a donné des informations sur sa situation" est manifestement contraire au dossier, et partant arbitraire. La cour cantonale a peut-être considéré que les indications données lors de l'audience du 14 décembre 2001 n'étaient pas suffisantes pour tenir le plaignant pour informé d'un changement de situation. Rien dans la décision attaquée ne permet toutefois de déterminer si la preuve offerte a été appréciée, ou si elle a été totalement ignorée. Tel qu'il est motivé, l'arrêt cantonal apparaît arbitraire et doit, partant, être annulé. La cause est renvoyée à la Chambre pénale afin qu'elle se prononce formellement au sujet de la pièce déposée par le recourant.
3. Le recours de droit public doit par conséquent être admis. Le recourant, qui obtient gain de cause, a droit à des dépens; ceux-ci sont mis à la charge du canton de Genève, le Scarpa n'ayant pas pris de conclusions. Conformément à l'art. 156 al. 2 OJ, il n'est pas perçu d'émolument judiciaire. La demande d'assistance judiciaire devient sans objet.

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est admis et l'arrêt attaqué est annulé. La cause est renvoyée à la Chambre pénale pour nouvelle décision au sens des considérants.
1. Le recours est admis et l'arrêt attaqué est annulé. La cause est renvoyée à la Chambre pénale pour nouvelle décision au sens des considérants.
2. Une indemnité de dépens de 1000 fr. est allouée au recourant, à la charge du canton de Genève.
2. Une indemnité de dépens de 1000 fr. est allouée au recourant, à la charge du canton de Genève.
3. Il n'est pas perçu d'émolument judiciaire.
3. Il n'est pas perçu d'émolument judiciaire.
4. La demande d'assistance judiciaire est sans objet.
4. La demande d'assistance judiciaire est sans objet.
5. Le présent arrêt est communiqué en copie au mandataire du recourant, au Service cantonal d'avance et de recouvrement des pensions alimentaires (Scarpa), au Procureur général et à la Chambre pénale de la Cour de justice du canton de Genève.
Lausanne, le 10 juin 2004
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le président: Le greffier: