Concernant la portabilité du C, oui si on utilise le même compilateur (gcc) le code sous Windows et sous Linux sera très proche en effet. Comme tu le dis, en supposant que la partie matérielle soit identique et que les options de compilation soient équivalentes.
Oui, programmer en JAVA demande quelques connaissances notamment si on souhaite s'appuyer sur les extensions temps réel.
En effet la notion de temps réel n'est pas lié à un langage mais au système informatique associé son application. Un système informatique est l'association d'une partie matérielle et d'une partie logicielle, cette dernière est le Système d'Exploitation (ou Moniteur ou Exécutif) et les programmes à exécuter.
La où je ne te rejoins pas c'est sur la notion d'ordonnancement qui casse le temps réel. Il est tout à fait possible de faire du multitâche (ou multithread) est de rester déterministe. Il faut alors avoir défini les contraintes temporelles et s'être assuré quelles soient toutes respectées.
Le fait de travailler sous Windows de façon classique, avec l'ordonnanceur (scheduler) va rendre le système totalement non déterministe et de ce fait rendre le fonctionnement quelque peu aléatoire.
Je pense qu'il est impossible de se passer de "windows" pour "vpinmame" ? Dans ce cas je suis convaincu qu'il serait impossible de gérer un plateau de flipper en direct.
Je pense donc que la solution de Romain est la bonne, le PC est là pour faire tourner l'application et les entrées/sorties sont contrôlées par déport (via USB) sur des cartes avec des microcontrôleurs.
![Trés content :D:](./images/smilies/3.gif)
![Arrow :arrow:](./images/smilies/icon_arrow.gif)