● ATELIER ROCKY / TECHNICAL LIBRARYQUÉBEC · ARCADE ELECTRONICS

JVS-002 / RÉFÉRENCE TECHNIQUE 16 min de lecture technique

JVS : découverte des cartes et attribution des adresses, octet par octet (JVS-002)

Entre la mise sous tension d’une borne et la lecture du premier bouton : suivez la découverte des nœuds JVS depuis la remise à zéro, grâce à des trames hexadécimales vérifiées et à des preuves de micrologiciels.

Documentation révisée le 14 novembre 2026

01

Pourquoi la découverte ne se limite pas au port série

Une carte E/S JVS ne démarre pas simplement avec une adresse définitive. L'hôte classique réinitialise les adresses, détecte par SENSE une carte admissible encore sans adresse, attribue un numéro avec F1 en diffusion, puis mémorise chaque carte découverte.

Transport, attribution d'adresse et capacités sont trois étapes distinctes. Observer des octets à 115200 8N1 prouve une activité sur le bus, pas la réussite de l'attribution. Obtenir une identité par la commande 10 ne garantit ni les boutons ni les extensions propres au jeu.

Cette suite de JVS-001 expose un algorithme d'hôte et des observations Sega/Namco dont la provenance est suivie. Ce n'est pas une procédure de câblage certifiée.

02

Une machine d'états pour l'hôte

Un modèle robuste conserve les nœuds attribués, l'adresse candidate, la requête en cours, la réponse validée et la classe électrique SENSE. Un essai fonctionnel à une seule carte ne démontre pas le bon fonctionnement de plusieurs cartes en chaîne.

La commande F0 de remise à zéro ne reçoit normalement pas de réponse. F1 est également diffusée, mais le nœud admissible répond normalement par un accusé de réception. Cette différence est indispensable au diagnostic des délais.

Cycle de découverte conceptuel (pas un schéma électrique)
LIAISON PRÊTE
   |
   v
DIFFUSER F0 D9 (reset)
   |
   v
OBSERVER SENSE
   |                   \
   | nœud non adressé ? +-- non --> FIN DE DÉCOUVERTE
   v oui
DIFFUSER F1 <adresse suivante>
   |
   v
VALIDER LA RÉPONSE ET SENSE
   |
   +----> répéter tant qu'un autre nœud est admissible
   |
   v
LIRE 11/12/13, 10, 14 PAR NŒUD
   |
   v
COMMENCER LES LECTURES AUTORISÉES
03

SENSE : état électrique, pas données de trame

SENSE est une ligne électrique distincte du RS-485 A/B. Sur les réalisations courantes, la tension haute indique l'absence de carte non adressée, une tension intermédiaire correspond à une carte sur son chemin de diodes et une tension basse suit l'activation du circuit d'état adressé. Il s'agit d'interprétations qualitatives, non de seuils universels.

Notre analyse de la Sega 838-13683-93 Rév.B a retrouvé une branche passive passant par D3/D4 et une branche commandée vers la masse. La sortie P7.2 du firmware active cette branche après F1 accepté. Le composant SOT-89 exact et la structure interne des diodes demeurent inconnus : nous n'inventons pas leur référence.

Les régions souvent décrites comme environ 5 V, 2–3 V et 0 V ne sont pas directement compatibles avec toutes les broches d'un microcontrôleur. Les seuils et le câblage en chaîne demandent des mesures.

Région SENSEInterprétation couranteLimite
HauteAucun autre nœud non adressé détectéRappel propre à l'hôte
IntermédiaireNœud non adressé potentiellement admissibleLa réponse F1 n'est pas garantie
BasseCircuit actif après attributionNe prouve pas que toute la chaîne est découverte
04

Remise à zéro par diffusion F0 D9

La commande F0 requiert le paramètre fixe D9 et s'envoie à la destination FF. La longueur logique LEN vaut 03 pour F0, D9 et SUM; la somme est CB. Une remise à zéro valide ne produit normalement pas d'accusé de réception JVS ordinaire.

Le gestionnaire Sega SP5001-B situé à l'adresse ROM 0965 vérifie D9 et réinitialise l'état interne uniquement si la valeur convient. Certains hôtes répètent F0 ou attendent un certain temps avant F1 : ces délais dépendent de leur implémentation et ne constituent pas une règle universelle.

Vecteur 1 : paquet de reset calculé
HÔTE -> TOUS :
E0 FF 03 F0 D9 CB
   FF = adresse de diffusion
   03 = LEN (F0, D9, SUM)
   F0 = RESET
   D9 = paramètre obligatoire
   CB = (FF+03+F0+D9) & FF

Réponse individuelle ordinaire : aucune.
05

Attribuer la première adresse avec F1 01

La commande F1 contient l'adresse proposée sur un octet. La requête pour le nœud 01 est E0 FF 03 F1 01 F4. Contrairement au reset, une attribution réussie reçoit normalement l'accusé du nœud admissible, même si l'adresse de destination était FF.

Un accusé standard contient l'état global 01 et le rapport de commande 01, destinés à l'hôte 00. E0 00 03 01 01 05 est un exemple calculé. Il ne faut pas augmenter le nombre de nœuds découverts simplement parce que F1 a été transmis : adresse, longueur, somme, état et rapport doivent être validés.

Vecteurs 2–3 : F1 et accusé synthétique
REQUÊTE : E0 FF 03 F1 01 F4
             |  |  |  |  +-- SUM F4
             |  |  |  +----- adresse 01
             |  |  +-------- commande F1
             |  +----------- LEN 03
             +-------------- diffusion FF

RÉPONSE : E0 00 03 01 01 05
             |  |  |  |  +-- SUM 05
             |  |  |  +----- rapport 01
             |  |  +-------- état du paquet 01
             |  +----------- LEN 03
             +-------------- destination hôte 00
06

Les conditions précises du gestionnaire Sega F1

Dans le SP5001-B, le gestionnaire F1 situé à l'adresse 0991 exige que FF5A (adresse conservée) vaille FF, c'est-à-dire l'état non adressé. Il vérifie aussi que (P7 & 03) n'égale pas 02. La connexion exacte des entrées P7.0/P7.1 n'est pas complètement établie : cette comparaison ne doit pas être présentée comme un seuil de tension connu.

En cas de réussite, la nouvelle adresse est placée dans FF5A, le rapport 01 est émis et P7.2 est activé. Les mesures de continuité de la carte montrent que cette sortie contrôle le chemin actif de SENSE. Cette concordance entre code et circuit est une preuve propre à la révision étudiée.

Un émulateur qui accepterait F1 sans fin, sans reset préalable, pourrait fonctionner sur un hôte tolérant tout en différant de ce firmware Sega original.

Opération constatéeAdresse de codeSignification
FF5A == FF obligatoire099B–09A1Condition de non-attribution
(P7 & 03) != 0209A5–09ABÉligibilité; décodage physique partiellement inconnu
FF5A reçoit la nouvelle adresse09AF–09BBAdresse utilisée pour les trames ultérieures
P7.2 activé09CE–09D2Activation du circuit SENSE mesuré
07

Un deuxième nœud exige une nouvelle décision SENSE

Après l'accusé F1 valide, l'hôte consulte à nouveau SENSE. Si une deuxième carte non adressée est admissible, il diffuse F1 avec l'adresse 02 : E0 FF 03 F1 02 F5. La réponse attendue possède la même structure générale que l'accusé du premier nœud.

Une carte déjà adressée ne doit pas s'approprier la diffusion suivante. Une vraie chaîne dépend de la propagation électrique de SENSE et des conditions d'admissibilité propres aux cartes, et pas simplement de l'envoi répété d'une commande F1.

Si SENSE annonce une autre carte mais qu'aucune réponse F1 valide n'arrive, il faut signaler une panne ou appliquer la politique de reprise documentée. Si SENSE annonce la fin, ne pas créer de nœuds fictifs.

Vecteur 4 : attribution de l'adresse 02
HÔTE -> NŒUD SUIVANT NON ADRESSÉ :
E0 FF 03 F1 02 F5
   FF = diffusion
   03 = LEN
   F1 = attribution d'adresse
   02 = adresse proposée
   F5 = (FF+03+F1+02) & FF

Vérifier SENSE après l'accusé valide.
08

Interroger les révisions avant les commandes de jeu

Une carte adressée n'est pas encore qualifiée pour le sondage des commandes. L'hôte demande la version du format des commandes 11, la version JVS 12 et celle des communications 13; ces octets utilisent le BCD. Les trois commandes peuvent être envoyées ensemble.

La requête combinée au nœud 01 est E0 01 04 11 12 13 3B. La réponse synthétique pour les versions 1.1, 2.0 et 1.0 est E0 00 08 01 01 11 01 20 01 10 4D. Elle contient un état global et trois couples rapport/donnée dans l'ordre des commandes.

Il faut vérifier les rapports individuellement. Une trame valide ne garantit pas que les trois commandes ont réussi. Refuser les réponses tronquées ou incohérentes plutôt que d'inventer une version par défaut.

Vecteurs 5–6 : versions combinées, réponse synthétique
REQUÊTE : E0 01 04 11 12 13 3B
SUM = (01+04+11+12+13) & FF = 3B

RÉPONSE (versions fictives 1.1 / 2.0 / 1.0) :
E0 00 08 01 01 11 01 20 01 10 4D
          |  |-----| |-----| |-----|
          |  RAP+11  RAP+20  RAP+10
          +-- état global 01

SUM = (00+08+01+01+11+01+20+01+10) & FF = 4D
Chaque RAP = 01 : commande réussie.
09

Lire et vérifier l'identification du périphérique

La commande 10 renvoie une chaîne terminée par NUL, souvent découpée par des points-virgules en fabricant, produit, version et commentaires. L'hôte doit rechercher la fin à l'intérieur de la trame dont la somme a été vérifiée, sans supposer qu'un pointeur est une chaîne illimitée fiable.

Notre étude Sega SP5001-B indique SEGA ENTERPRISES,LTD.;I/O 838-13683B ;Ver1.07;99/06. Les cartes Namco FCA-1 et Taito K91X1130A publiquement observées retournent des noms et versions différents. Une étiquette sur un PCB ne garantit pas l'origine du micrologiciel installé.

Un convertisseur étiqueté 98701 a répondu No Brand dans une capture publique; le contributeur doutait de la provenance de son firmware. Conserver les octets exacts et la source de la capture au lieu de présenter une hypothèse comme officielle.

ÉtapeRaison
Vérifier destination, LEN et SUMExclure les paquets corrompus ou d'un autre nœud
Vérifier le rapport de commandeNe pas interpréter une réponse refusée
Trouver NUL dans les donnéesÉviter une lecture hors limites
Garder l'identité bruteComparer les variantes et captures
Comparer au PCB et à sa révisionNe pas deviner le firmware d'usine
10

La commande 14 définit le contrat de sondage

La réponse à la commande 14 comporte des tuples de quatre octets : code de fonction, paramètre 1, paramètre 2 et paramètre 3. Un unique octet 00 termine la liste. L'hôte rejette les tuples tronqués, l'absence de terminateur et les données qui dépassent la taille de la trame.

Notre exemple synthétique annonce deux joueurs avec dix commutateurs par joueur (01 02 0A 00), deux compteurs de pièces (02 02 00 00) puis le terminateur 00. La réponse contient aussi l'état du paquet et le rapport de commande. Ce n'est pas une capture d'une carte précise.

Une fois les capacités vérifiées, l'hôte limite les interrogations aux fonctions annoncées. Les tuples dépendent parfois des commutateurs DIP et du firmware; ils ne prouvent pas que tous les fils de la borne sont raccordés.

Vecteurs 7–8 : fonctions annoncées (réponse fictive)
REQUÊTE : E0 01 02 14 17
SUM = 01+02+14 = 17

RÉPONSE : E0 00 0C 01 01 01 02 0A 00 02 02 00 00 00 1F
               |  |  |-----------| |-----------|  |   |
              ÉT RAP 01 02 0A 00   02 02 00 00  FIN SUM

01 02 0A 00 = 2 joueurs, 10 boutons/joueur
02 02 00 00 = 2 compteurs de pièces
00 = fin de la liste de fonctions
LEN = 0C; SUM = 1F
11

Namco WAJVIO : un hôte réel attend entre ses étapes

Notre reconstruction statique de la bibliothèque Windows Namco System ES WAJVIO Ver2.04 trouve une découverte initiale en 18 états, appelée environ tous les 16 ms. Le premier reset arrive après 30 cycles (~480 ms), le deuxième après 30 de plus, puis 40 cycles (~640 ms) précèdent l'attribution des adresses.

Après une réponse F1 réussie, le programme attend trois cycles (~48 ms) avant de consulter SENSE pour un éventuel nœud suivant. Un échec d'attribution entraîne une voie de reprise plus lente avec trois délais de 120 cycles (~5,76 s au total), et des resets répétés. Ce sont des durées déduites du logiciel de cet hôte, pas des exigences générales JVS.

La bibliothèque lit ensuite les versions, les identités et les fonctions, avant le sondage ordinaire. Son moteur de reprise ultérieure comporte 21 états et ne rejoue pas exactement les mêmes 18 états. Deux hôtes partageant la trame JVS peuvent donc traiter très différemment les retards et erreurs.

Étape Ver2.04Délai logiciel approximatifPortée
Premier reset30 × ~16 ms = ~480 msHôte Namco étudié
Deuxième resetEncore ~480 msHôte Namco étudié
Stabilisation avant F140 × ~16 ms = ~640 msHôte Namco étudié
SENSE après F13 × ~16 ms = ~48 msHôte Namco étudié
Voie lente de reprise3 × 120 × ~16 ms = ~5,76 sPolitique logicielle, non vitesse JVS
12

Diagnostic et liste de validation reproductible

Séparer les pannes physiques RS-485/SENSE, les erreurs de trame et de somme, les échecs d'attribution des adresses et les différences de commandes ou capacités. L'absence de réponse après un F0 valide est normale; celle qui suit F1 doit faire examiner l'admissibilité, la transmission et les délais.

Conserver séparément les octets physiques échappés et les trames logiques décodées. Avant d'utiliser les données, vérifier la destination, l'état global, chaque rapport et la somme. Après une panne du bus, redécouvrir les cartes au lieu de réutiliser les anciennes adresses comme si elles étaient encore actives.

Les observations Sega proviennent du code SP5001-B et de sa carte; les délais Namco de l'analyse statique WAJVIO. Les captures publiques appartiennent à leurs contributeurs. Nos vecteurs sont calculés pour l'explication : aucun n'est présenté comme capture effectuée sur notre borne.

  • Documenter hôte, jeu, modèle E/S, révision et ordre de branchement.
  • Valider les trames et sommes par tests synthétiques avant le matériel réel.
  • Tester F0, F1, SENSE, versions 11/12/13, identité 10 et capacités 14.
  • Traiter l'activation RS-485 et SENSE 5 V comme des questions électriques.
  • Ne jamais assimiler une prise JVS à de l'USB ordinaire, ni déclarer USB2JVS qualifié sur la base des tests logiciels.
SymptômeQuestion prioritaire
Aucune réponse à F0Le reset exige-t-il réellement un accusé ?
Pas d'accusé F1 valideSENSE, admissibilité et direction RS-485 corrects ?
F1 accepté, SENSE surprenantCircuit actif ou chaînage en défaut ?
Mauvaise somme sur les versionsÉchappement décodé avant addition ?
Chaîne ID sans zéroRéponse tronquée ou malformée ?
Seule la première carte apparaîtSENSE expose-t-il les nœuds suivants ?

Sources et documents de référence

Documents d’origine et références utilisées pour cette page. Les modèles et révisions peuvent varier.

  1. Arcade Docs — canonical JVS packet frame and escaping
  2. OpenJVS — JVS command details (broadcast reset, address assignment, replies)
  3. Joypad-OS — practical JVS addressing, SENSE and command descriptions
  4. OpenJVS — hardware/SENSE implementation discussion
  5. Arcade-Projects — MEGA-JVS original-system SENSE observations
  6. Arcade-Projects — JVS information extractor, actual board ID captures
  7. MAME — Sega MIE/JVS host source (independent emulator reference)

Document d’information : aucun essai de compatibilité produit n’est revendiqué. L’atelier ne vend pas encore ces accessoires.

ATELIER ROCKY / GUIDES

Une autre lecture utile

Tous les guides ←