IPB

Bienvenue invité ( Connexion | Inscription )

> Contrôler un vieux robot Nintendo avec un vieux Mac, Un projet du dimanche inutile mais rigolo...
Options
Sirix1995
posté 11 Jan 2026, 00:30
Message #1


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 395
Inscrit : 12 Aug 2012
Lieu : Gard
Membre no 178 135



Salut à tous !

Vous savez sans doute, depuis quelques temps, j'ai un Macintosh Classic. Que j'ai upgradé en Macintosh Classic II. C'est loin d'être la seule vieillerie que je possède, j'ai un Atari ST, un Commodore 64, une armada de G4 et de G5...

Et j'ai aussi une Nintendo NES, avec son accessoire, R.O.B. le robot. Vous connaissez ? Un "compagnon de jeu électronique" censé nous accompagner sur certains jeux en déplaçant des objets autour de lui. Il était guidé par la console via des flash envoyés sur l'écran cathodique.

Il faut savoir que j'ai eu le R.O.B. avant la NES. Et, comme il fonctionnait encore, je me suis demandé comment le téléguider sans sa console. Au début, j'ai simplement pris un émulateur sur mon G5 et son écran cathodique (un Diamond Pro 2070SB), passé l'écran en 480p 60Hz, mis le robot devant, et...magie ! Ça marche ! Je pouvais jouer avec R.O.B. sans NES !



J'en ai profité pour faire quelques recherches sur le fonctionnement de R.O.B. Notamment, pourquoi R.O.B. ne fonctionne pas avec un écran LCD ou OLED. Et j'ai trouvé la réponse. Le système de R.O.B. est intelligent, mais un peu vicieux.

Pour se synchroniser avec la NES, R.O.B. se cale sur le VBlank, le laps de temps très court sur un écran cathodique, entre deux frames, où le canon remonte du bas vers le haut de l'écran, et où l'écran est donc, techniquement, totalement sombre.

Concrètement : une frame à 60Hz dure environ 16.67 millisecondes. R.O.B., lui, détecte les flash sur une durée de 1.5 millisecondes. Le reste du temps, il ne doit capter que du noir. Si ce n'est pas le cas, il n'établira pas de communication. C'est le comportement normal d'un écran cathodique où le phosphore n'est éclairé qu'au passage du canon, et pas le reste du temps. Alors que sur un écran LCD ou OLED, l'éclairage est permanent. Si on voulait clignoter assez vite sur ce genre d'écran pour faire réagir R.O.B., il faudrait un écran capable de se rafraichir à plus de 666 Hz !

Mais le G5 n'est pas ma seule machine munie d'un écran cathodique. Mon Macintosh Classic en a un aussi. Et je me suis demandé. Est-ce que ça serait possible de commander R.O.B. avec ce vieux coucou ? L'écran en est physiquement capable, et le Système 7 est suffisamment primitif pour contrôler très finement l'affichage en rythme avec le balayage.

J'ai donc bricolé un peu sur Think C, et après un peu d'apprentissage (je n'avais jamais codé en C sur un vieux Macintosh), j'ai réussi !



Cette fois, pas d'émulation. Programme entièrement fait maison ! Le Mac reproduit exactement les mêmes flash que la NES ! J'ai utilisé cette documentation amateur pour réaliser les bonnes commandes. Ce n'est pas bien utile. D'autant que bon, on a même pas de jeu comme sur la console pour jouer avec R.O.B., mais c'était rigolo à faire. Et ça ne demande qu'à être étoffé ! Le journal du lapin en a fait un article : par ici.

Peut-être qu'à terme je m'amuserais à coder un jeu Macintosh pour R.O.B., sait on jamais. En attendant, j'ai mis le programme à disposition sur GitHubi ! Par là ! Le programme n'est pas parfait. Notamment parce que j'utilise le WMgrPort qui est réservé au système. Rien de bien dangereux mais ça plante un peu l'interface graphique à la fin du programme. Elle reste fonctionnelle cependant. Comme je disais, c'est mon premier programme sur Macintosh ancien. Je trouverais sans doute moyen d'améliorer ça !

J'espère que la bidouille vous plait malgré tout !

Ce message a été modifié par Sirix1995 - 12 Jan 2026, 10:36.


--------------------
PowerMac G5 Fin 2005 975MP dual core 2 Ghz, 16 Go DDR2 RAM, 2xGeForce 6600(LE) 128/256 Mo VRAM, SuperDrive, HDD 150 Go et 500 Go Mac OS 10.4.11/10.5.8, 7 à 9/XP via émulateurs et Classic
PowerMac G4 Medusa2 dual 7400 450 MHz, 2 Go SDRAM, GeForce 2MX 64 Mo VRAM, Combo, HDD 80, 40, et 2x16 Go, Mac OS 10.4.11, Mac OS 9.2.2 (a besoin d'une nouvelle alim...)
MacBook Pro Retina début 2015 13"
i7-5557U dual core 3,1 GHz, 16 Go DDR3 RAM, Intel Iris Graphics 6100 1,5 Go VRAM, SSD 256 Go, macOS 10.14.6 Macintosh Classic/Stealth Classic II PowerBook 170
Hackintosh : Dell XPS 730x Gigabyte B760M Gaming DDR4, i5-12400 Hexacore à 2,5 GHz, 16 Go DDR4, Radeon RX 6600XT 8 Go VRAM, SuperDrive, SSD 128 Go & 2x512 Go, HDD 2 To, macOS 13.6, Windows 11, Mageia 9
iPod Vidéo 5,5G Noir 256 Go, iPhone 4S Blanc 16 Go - Non Apple : Samsung Galaxy Z Flip3
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
Sirix1995
posté 12 Jan 2026, 10:33
Message #2


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 395
Inscrit : 12 Aug 2012
Lieu : Gard
Membre no 178 135



Merci beaucoup !


--------------------
PowerMac G5 Fin 2005 975MP dual core 2 Ghz, 16 Go DDR2 RAM, 2xGeForce 6600(LE) 128/256 Mo VRAM, SuperDrive, HDD 150 Go et 500 Go Mac OS 10.4.11/10.5.8, 7 à 9/XP via émulateurs et Classic
PowerMac G4 Medusa2 dual 7400 450 MHz, 2 Go SDRAM, GeForce 2MX 64 Mo VRAM, Combo, HDD 80, 40, et 2x16 Go, Mac OS 10.4.11, Mac OS 9.2.2 (a besoin d'une nouvelle alim...)
MacBook Pro Retina début 2015 13"
i7-5557U dual core 3,1 GHz, 16 Go DDR3 RAM, Intel Iris Graphics 6100 1,5 Go VRAM, SSD 256 Go, macOS 10.14.6 Macintosh Classic/Stealth Classic II PowerBook 170
Hackintosh : Dell XPS 730x Gigabyte B760M Gaming DDR4, i5-12400 Hexacore à 2,5 GHz, 16 Go DDR4, Radeon RX 6600XT 8 Go VRAM, SuperDrive, SSD 128 Go & 2x512 Go, HDD 2 To, macOS 13.6, Windows 11, Mageia 9
iPod Vidéo 5,5G Noir 256 Go, iPhone 4S Blanc 16 Go - Non Apple : Samsung Galaxy Z Flip3
Go to the top of the page
 
+Quote Post

Les messages de ce sujet
- Sirix1995   Contrôler un vieux robot Nintendo avec un vieux Mac   11 Jan 2026, 00:30
- - Phil J. Fry   Bravo, ça c'est de la belle bidouille !   11 Jan 2026, 08:18
- - Sirix1995   Merci beaucoup !   12 Jan 2026, 10:33
- - ch21   Classe ! Bravo   13 Jan 2026, 12:46


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 30th January 2026 - 07:54