MSX Village forum

La Place des Développeurs Light gun Jouer à Lucky Luke sur MSX

aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 3029

Le 09/07/2025 à 14h03

Reprise du message précédent

Jipe :
j'ai aussi du mal à avoir la détection avec ton programme de test [...]


Le carré est pas assez gros ? Pas assez de noir autour ? Il bouge trop vite ? Edité par aoineko Le 09/07/2025 à 14h03


On est toujours ignorant avant de savoir.
Github    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 3029

Le 12/07/2025 à 19h38
J'ai fait une nouvelle version du programme de test avec un bouton pour démarrer/arrêter le mouvement du sprite.
https://github.com/aoineko-fr/MSXgl/raw/refs/heads/experimental_250228/projects/samples/emul/rom/s_lgun.rom

Ce que j'aimerai confirmer, c'est que j'ai l'impression que les light-guns MSX (le Terminator et le Gun-Stick) ne signal pas quand ils voient de la lumière, mais uniquement quand ils détectent un passage de noir vers la lumière.... Edité par aoineko Le 12/07/2025 à 19h38


On est toujours ignorant avant de savoir.
Github    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10995

Le 12/07/2025 à 20h15
en fait les jeux affichent un écran noir avec des sprites blanc un bref moment

tu peux émuler les jeux avec blueMSX la détection ne marche pas mais on vois bien le système employé lors de l'appui sur la gachette


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 3029

Le 13/07/2025 à 01h53
Oui, je connais comment fonctionne les jeux MSX; c'est le même principe que sur le Duck Hunt de la NES :
- 1 frame avec un écran noir total (frame antitriche)
- 1 frame avec un écran noir + un sprite blanc à la place du canard

Si le light gun détecte du noir la frame ou le joueur appuis sur la gâchette et du blanc à la frame suivante, le jeu sait que le joueur à bien visé.


Pour le moment, je n'en suis pas encore à essayer de faire un jeu ; je souhaite juste valider le fonctionnement des light guns sur MSX.
Pour la gâchette c'est simple, mais pour le capteur de lumière, je pensais qu'il utilisait un pin du port joystick pour signifier si le capteur voyait de la lumière ou non, mais d'après les tests il semble que le signal ne soit envoyé qu'une seule fois, même si le light gun voit la lumière pendant plusieurs frames.

Tu confirmes ?


On est toujours ignorant avant de savoir.
Github    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10995

Le 13/07/2025 à 10h08
d'après mes test c'est juste une pulse qui est envoyée ce qui parait logique car sinon la détection serait trop facile


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 3029

Le 13/07/2025 à 19h46
A priori ce n'est pas le cas avec le Gun-Stick, qui semble renvoyer un signal aussi longtemps que la lumière est détecté.
C'est comme ça aussi que fonctionne le light gun de la NES.

L'anti-triche est fait avec l'alternance d'une frame entièrement noire, avant la frame noire + le sprite blanc.
Comme ça, le jeu sais que tu as touché ta cible si la frame où tu appuis sur la gâchette, il détecte du noire, et la suivante, du blanc.
Si tu essayes de tricher en visant une lumière, tu n'auras pas la frame noire et le jeu ne validera pas que tu as touché la cible.

C'est étonnant que le light gun de ASCII et Gun-Stick ne fonctionnent pas de la même façon. :hum


On est toujours ignorant avant de savoir.
Github    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie