Gamoover

Besoin de contacter un admin pour une proposition, une suggestion ou discuter d'un probleme ?
C'est ici : High_Cobra, AsPiC ou Pich

Adaptation platine chinoise pour Asteroids, Star Wars et autres jeux vectoriels

Démarré par english2, Lundi 10 Mai 2021, 19:11:41 PM

ɐɹqoƆ‾ɥƃᴉH

Petite remarque sur les boutons pour les réglages, normalement t'as une connexion série sur le Teensy qui peut te permettre de lui envoyer facilement des paramètres.

Ca te fait juste une petite routine de lecture de la liaison série à faire puis tu pilote depuis le PC. Je procède souvent comme ça pour la mise au point sur Arduino.

Pour la sauvegarde, il doit bien y avoir un petit bout d'EEPROM dispo non ? Ça existe sur Arduino donc ça m'étonnerait que ça existe pas sur le Teensy...

english2

CitationPetite remarque sur les boutons pour les réglages, normalement t'as une connexion série sur le Teensy qui peut te permettre de lui envoyer facilement des paramètres.

Ca te fait juste une petite routine de lecture de la liaison série à faire puis tu pilote depuis le PC. Je procède souvent comme ça pour la mise au point sur Arduino.

C'est une idée intéressante. Dans ce cas, il serait préférable d'envoyer les paramètres depuis le Raspberry Pi via la liaison USB actuelle, afin de ne pas ajouter un périphérique en plus. Idéalement à terme, il pourrait y avoir un programme chapeau qui permettrait de sélectionner le jeu à faire tourner sur MAME, et de définir les paramètres de la PCB avec le Teensy et les DAC. Il me semble que ce type de programme "menu" existe déjà, donc si les sources sont dispos il serait possible de rajouter un écran de configuration spécifique.

CitationPour la sauvegarde, il doit bien y avoir un petit bout d'EEPROM dispo non ? Ça existe sur Arduino donc ça m'étonnerait que ça existe pas sur le Teensy...

Je pense que oui, mais s'agissant de ma première expérience avec Arduino/Teensy, je découvre au fur et à mesure. Je suis preneur d'exemples simples de code pour faire cela. Il n'y aurait que quelques octets à stocker.
If at first you don't succeed...

ɐɹqoƆ‾ɥƃᴉH

Citation de: english2 le Lundi 09 Mai 2022, 18:26:45 PM
Je pense que oui, mais s'agissant de ma première expérience avec Arduino/Teensy, je découvre au fur et à mesure. Je suis preneur d'exemples simples de code pour faire cela. Il n'y aurait que quelques octets à stocker.

Exemple basique à adapter, avec 5 paramètres. Lecture/Ecriture en une seule fois...


#include <avr/eeprom.h>

typedef struct
{
int top_closed;
int top_open;
int bottom_closed;
int bottom_open;
int max_eye_power;
}  settingsType;

settingsType settings;

void setup() {
  Serial.begin(115200);
  eeprom_read_block((void*)&settings, (void*)0, sizeof(settingsType));
}

void loop() {
  Serial.println(settings.top_closed);
  //etc...
}

void save() {
  eeprom_write_block((const void*)&settings, (void*)0, sizeof(settingsType));
}

 


english2

Merci beaucoup !

Bilan de ce soir :
- les boutons commencent à fonctionner (après activation de la résistance pull up interne du Teensy)
- ajout de quelques paramètres basiques à l'écran
- les boutons pilotent les valeurs de certains paramètres qui sont mis à jour en temps réel (par exemple, inverser le X et Y)
- lecture et écriture des paramètres dans l'EEPROM

If at first you don't succeed...

english2

Bonjour à tous

J'ai décidé de publier le projet sur Github aujourd'hui. Il se trouve ici : https://github.com/english1234/vstcm et inclut le schéma, gerber, liste de composants (BOM) ainsi que le code. Il y a un fichier ZIP dans le répertoire gerber qui contient tout ce qu'il faut pour envoyer la PCB en fabrication directement.

La carte a été conçue avec la simplicité en tête en utilisant des composants qui sont faciles à trouver, et faciles à souder afin que n'importe qui puisse en fabriquer une.

Le code a besoin d'optimisation. Idéalement il serait à ré-écrire par quelqu'un qui est plus expert au niveau du fonctionnement interne du Teensy 4.1 (surtout le DMA), et j'espère qu'en publiant le tout sur Github que cela encouragera des contributions afin de développer cette solution relativement peu couteuse pour la communauté arcade / graphiques vectorielles.

Je tiens à remercier gc339 de nouveau pour son aide si précieuse.

Je pense faire une publication de cette annonce dans une autre partie du forum, car je ne suis pas certain que tous ceux qui seraient potentiellement intéressés regardent régulièrement ce fil.

Si vous vous lancez dans l'aventure de la fabrication de cette PCB, je tenterai de répondre à vos questions et d'aider avec plaisir !
If at first you don't succeed...

english2

Pour terminer la mise en route de l'alimentation "optionnelle" en 12V afin de libérér le Raspberry Pi de cette charge, j'avais commandé et reçu le régulateur LM2940T-5.0. En revanche, j'avais oublié de commander le Traco 1212D : c'est désormais chose faite ce jour et cela permet d'essayer le site RS Particuliers !

Bon dimanche à tous
If at first you don't succeed...

Little_Rabbit

Salut,

Un grand merci à toi pour le partage de tout ton travail  ^-^ !

Pour l'heure le résultat est sans doute perfectible, mais gageons que ce partage saura susciter des vocations auprès d'autres membres de la communauté et permettre ainsi la poursuite de ton œuvre !  ^-

Rendre accessible à tous l'émulation de ces jeux vectoriels mythiques, sur de véritables écrans vectoriels, c'est vraiment génial ! C'est l'accomplissement d'un rêve qu'on n'aurait pas imaginé possible quelques années en arrière 8).

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

kos71

je suis ce post de très pret car j espere bientot me remettre au wip et attaqué celui de la Tempest ;D
@home: Flip TMNT, flip hurricane, Flip big guns, flip dracula,Flip F14,robocop, lw3,jokerz, rockybullwinckle,star wars De,sttng,dr who,tales from the crypt,jurassic park,laser war,gateway,tommy the who,baby pacman./cab=Mortal kombat 2,hang on DX, time crisis, hotd,pupitre fighting vipers, Naomi 1,  cocktail RP,cocktail missile command , cocktail "taito", cocktail space trek,cocktail galaxian,cocktail DE deco,cocktail SI., twin sega rally, OUT RUN,cockpit OT turbo, Virtua cop, Euro 40, astro city Blast city,mvs4u,namco exceleena red,madonna,aerocityx2,sega city ,bandido et afterburner dx;

english2

Message sympa reçu ce matin. Ralf Kornmann qui aide Jason à faire la partie logicielle de ses cartes m'a également donné quelques conseils intéressants sur la façon de communiquer avec les DAC depuis le Teensy, qui devrait augmenter la vitesse de rafraichissement (cela passe par FlexIO, à investiguer donc).



J'ai reçu les autres composants pour changer l'alimentation en 12V, donc je procède aux tests. Il y a également une autre version de MAME qui a fait l'objet d'une video sur Youtube avec l'USB DVG - cela pourrait être une bonne alternative à AdvanceMAME https://youtu.be/a7to6U2RDGk
If at first you don't succeed...

english2

Bonjour à tous

Petit contretemps avec le LM2940. Après montage des composants et coupe du strap sur le Teensy (photo n°3), lors des tests, le Teensy ne démarrait pas et en regardant la tension avec un multimètre, c'était à 12V ! En poussant les investigations, je me suis aperçu d'une petite erreur au niveau du schéma, car les pins étaient inversés. La 2ème photo montre le LM2940 monté à l'envers. J'ai donc réussi à griller le LM2940 (mais rien d'autre heureusement) ...

J'ai commandé d'autres LM2940, mais en attendant j'ai mis un 7805 qui fonctionne très bien (en tout cas lors d'un court test), mais qui chauffe beaucoup. Je rajouterai un petit radiateur, mais cela reste à voir sur le long terme.

En tout cas, l'alimentation de la carte et du Teensy fonctionnent très bien, et l'image obtenue est très stable. Le schéma sur Github est corrigé, et la version actuelle est désormais v2.1 du coup.





If at first you don't succeed...

english2

Bonjour à tous

Puisque le Raspberry Pi 4 est actuellement relativement cher, j'ai voulu tester autre chose. Du coup un essai a été réalisé avec un Orange Pi 3 LTS, commandé pour moins de 50€ sur Aliexpress. Le bilan est très positif, il fonctionne bien !







If at first you don't succeed...

english2

Bonsoir gc339, bonsoir à tous

J'étais curieux de voir ce que ça donne sans le translateur TXS0108E. Du coup, en le bridgant tout fonctionne normalement sans changement des résistances en aval ! Une très bonne nouvelle. L'emplacement pourra disparaître sur la prochaine version de la PCB.

Autre petite avancée, j'ai réussi à utiliser une version différente de la commande SPI.transfer qui met en oeuvre le DMA, mais que 16 bits à la fois (donc pas mieux que le SPI.transfer16), sauf qu'il ne bloque pas la suite du code en attendant de terminer. Cela donne un léger mieux avec MAME ou désormais certains jeux moins complexes graphiquement (par ex. Gravitar) fonctionnent à merveille.

If at first you don't succeed...

english2

Bonjour à tous

Il y a eu pas mal de progrès aujourd'hui avec l'optimisation du code. Star Wars fonctionne plutôt bien désormais. Voici une petite vidéo, tournée avec mon téléphone dont la qualité est malheureusement très mauvaise. En réalité l'image ne clignote pas et la qualité est très bonne. A partir de 50 secondes on peut constater la pleine utilisation des niveaux d'intensité (encore une fois on ne se rend pas compte de l'effet sur la vidéo ...).

https://youtu.be/F4roGs0Rhao

Par ailleurs, j'avance sur l'écran de paramétrage qui peut désormais être superposé à un jeu afin de régler les paramètres en temps réel.



Le git sera bientôt à jour avec la dernière version du code : https://github.com/english1234/vstcm

Bonne soirée !
If at first you don't succeed...

english2

If at first you don't succeed...

Little_Rabbit

Salut,

Bravo pour tes avancées et progrès, ainsi que pour l'article que Hackaday a consacré à tes travaux !  ^-^

C'est le début de la gloire !  ^-

A+
Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer => Trois fois rien quoi ! :D
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

english2

Je suis en train de programmer les écrans de paramétrage, avec mise en surbrillance du paramètre à modifier, le tout piloté par les boutons sur la PCB. J'avais un petit module de télécommande infrarouge qui était resté inutilisé, donc je l'ai mis en oeuvre en quelques minutes (3 fils seulement), et cela rajoute un confort très appréciable car il suffit d'avoir le tout petit capteur quelque part à l'avant d'une borne et cela évite de passer derrière pour appuyer sur des boutons et puis repasser devant pour voir ce que ça donne à l'écran ...

Le module IR de type HX1838 coute 1 euro sur Aliexpress, donc pourquoi s'en priver ?!






If at first you don't succeed...