Gamoover

[move]Pour vous aussi la chipo ne sera jamais qu'un bootleg de merguez (c)sushy18 ? Alors soyez les bienvenus sur Gamoover ! [/move]

Reproduction Taito Ice Cold Beer ou Zeke's PEAK

Démarré par sushy18, Samedi 28 Mai 2016, 16:36:37 PM

kidicarus

Terrible ce projet en tout cas !! Je vais suivre cela avec attention ?
Je cherche une playchoice 10 et une pcb super system nintendo un playfield skateball ; evel knievel

Sunn

ouais, sacré projet !



j'ai hâte de voir la suite aussi !


tilowil

Bonsoir,

Entre 2 enregistrements sur ma base de dev, j'ai trouvé ceci sur l'AY-3-8910, Il y a d'autre infos au passage
https://books.google.de/books?id=ocjJE4KtZq4C&lpg=PA95&dq=ay-3-8910&pg=PA90&hl=fr#v=onepage&q=ay-3-8910&f=false
Bonne lecture.

sushy18

#131
Merci Tilowil  <:)
Je suis sur mon tel  :mrgreen: on peut l'enregistrer en pdf et le mettre sur le post ? (Je checkerai ce week end depuis un PC histoire de tout centraliser  :D )

Justement je regardais les montages à base d'arduino et AY-3-8910 (YM2149)
En regardant les schémas,
Je me demandais si les sons sont stockés ou indiqués dans les dumps de U23 et U24  ou si c'est le processeur (m6809) ou autre qui causait directement avec le chip son ou si c'est stocké ailleurs... ??
Citation de: lipide512 le Jeudi 09 Juin 2016, 11:02:14 AM
Quoi que, dans le cas de multiple arduino, on pourrait leur donner le nom des beatles... John, paul, georges et ringo ! :)
Je viens de percuter  :D

Excellente idée  de nommer les AtMega :D
Après à choisir je serais plutôt sur Leonardo , raphael, Donatello,Michelangelo ..... (:x
Ou si on est à 3 arduino : alex, tam et sylia (cat's eyes)
Si tu ne sais pas demande, si tu sais partage !!
Faudrait pas perdre de vue qu'une borne d'arcade c'est pas une console, c'est rarement plug n play, plus souvent plug n pschitt... (Funkycochise 2008)
"Gratuit ? C'est déjà trop cher !!" ( Crying Freeman 2016)

tilowil

#132
Bonsoir,

Ce que j'ai trouvé concernant le AY-38910 et l'arduino hormis le livre :


// No Quarz required version for controlling a AY-3-8910 sound chip with the Arduino
// Author: Matio Klingemann http://incubator.quasimondo.com

// A bomb drop sound effect modeled after an example found here
// http://books.google.de/books?id=ocjJE4KtZq4C&lpg=PA95&dq=ay-3-8910&pg=PA90#v=onepage&q=ay-3-8910&f=false

////Pin connected to Data in (DS) of 74HC595
const int dataPin = 5;
//Pin connected to latch pin (ST_CP) of 74HC595
const int latchPin = 6;
//Pin connected to clock pin (SH_CP) of 74HC595
const int clockPin = 7;

const int pinBC1 =  13;    
const int pinBCDIR =  12;

// 2mz clock pin
const int freqOutputPin = 11;   // OC2A output pin for ATmega328 boards

const int prescale  = 1;
const int ocr2aval  = 3;
const float period    = 2.0 * prescale * (ocr2aval+1) / (F_CPU/1.0e6);
const float freq      = 1.0e6 / period;

int tp[] = {//MIDI note number
 15289, 14431, 13621, 12856, 12135, 11454, 10811, 10204,//0-o7
 9631, 9091, 8581, 8099, 7645, 7215, 6810, 6428,//8-15
 6067, 5727, 5405, 5102, 4816, 4545, 4290, 4050,//16-23
 3822, 3608, 3405, 3214, 3034, 2863, 2703, 2551,//24-31
 2408, 2273, 2145, 2025, 1911, 1804, 1703, 1607,//32-39
 1517, 1432, 1351, 1276, 1204, 1136, 1073, 1012,//40-47
 956, 902, 851, 804, 758, 716, 676, 638,//48-55
 602, 568, 536, 506, 478, 451, 426, 402,//56-63
 379, 358, 338, 319, 301, 284, 268, 253,//64-71
 239, 225, 213, 201, 190, 179, 169, 159,//72-79
 150, 142, 134, 127, 119, 113, 106, 100,//80-87
 95, 89, 84, 80, 75, 71, 67, 63,//88-95
 60, 56, 53, 50, 47, 45, 42, 40,//96-103
 38, 36, 34, 32, 30, 28, 27, 25,//104-111
 24, 22, 21, 20, 19, 18, 17, 16,//112-119
 15, 14, 13, 13, 12, 11, 11, 10,//120-127
 0//off
};

int fx = 0;
int phase = 0;
int temp1 = 0;


void setup()
{
  //init pins
   pinMode(latchPin, OUTPUT);
   pinMode(dataPin, OUTPUT);  
   pinMode(clockPin, OUTPUT);
   pinMode(pinBC1, OUTPUT);
   pinMode(pinBCDIR, OUTPUT);        
   pinMode(freqOutputPin, OUTPUT);
 
   init2MhzClock();
   
   set_mix( false, false, false, false, false, true );
   set_chA_amplitude(0,false);
   set_chB_amplitude(0,false);
   set_chC_amplitude(0,false);
}


void loop() {
 if ( fx == 0 )
 {
    if ( phase == 0 )
   {
       set_mix( true, false, false, false, false, true );
       set_chA_amplitude(15,false);
       temp1 = 0x20;
       write_data(0x01, 0);
       phase++;
   } else if ( phase == 1 )
   {
      write_data(0x00, temp1);
      delay(12);
      temp1++;
      if ( temp1 == 0xc0 ) phase++;
   } else if ( phase == 2)
   {
       noise(0x0f);
       set_mix( false, false, false, true, true, true );
       set_chA_amplitude(0,true);
       set_chB_amplitude(0,true);
       set_chC_amplitude(0,true);
       set_envelope(false,false,false,false,0x5000);
       delay(5000);
       phase=0;
   }
 }
}



void  init2MhzClock()
{
   // Set Timer 2 CTC mode with no prescaling.  OC2A toggles on compare match
   //
   // WGM22:0 = 010: CTC Mode, toggle OC
   // WGM2 bits 1 and 0 are in TCCR2A,
   // WGM2 bit 2 is in TCCR2B
   // COM2A0 sets OC2A (arduino pin 11 on Uno or Duemilanove) to toggle on compare match
   //
   TCCR2A = ((1 << WGM21) | (1 << COM2A0));

   // Set Timer 2  No prescaling  (i.e. prescale division = 1)
   //
   // CS22:0 = 001: Use CPU clock with no prescaling
   // CS2 bits 2:0 are all in TCCR2B
   TCCR2B = (1 << CS20);

   // Make sure Compare-match register A interrupt for timer2 is disabled
   TIMSK2 = 0;
   // This value determines the output frequency
   OCR2A = ocr2aval;
}

void set_mix( boolean chA_tone,boolean chB_tone,boolean chC_tone,boolean chA_noise,boolean chB_noise,boolean chC_noise )
{
  write_data(7, B11000000 |
                  (chC_noise == true ? 0 : B00100000)|
                   (chB_noise == true? 0 : B00010000) |
                   (chA_noise == true ? 0 : B00001000) |
                   (chC_tone == true ? 0 : B00000100) |
                   (chB_tone == true ? 0 : B00000010) |
                   (chA_tone == true ? 0 : B00000001)
  );
}

void set_chA_amplitude(int amplitude, boolean useEnvelope )
{
  write_data(8, (amplitude & 0xf) | (useEnvelope != true ? 0 : B00010000 ) );
}

void set_chB_amplitude(int amplitude, boolean useEnvelope )
{
 write_data(9, (amplitude & 0xf) | (useEnvelope != true ? 0 : B00010000 ) );
}

void set_chC_amplitude(int amplitude, boolean useEnvelope )
{
 write_data(10, (amplitude & 0xf) | (useEnvelope != true ? 0: B00010000 ) );
}

void set_envelope( boolean hold, boolean alternate, boolean attack, boolean cont, unsigned long frequency )
{
   write_data(13, (hold == true ? 0 : 1)|
                   (alternate == true? 0 : 2) |
                   (attack == true ? 0 : 4) |
                   (cont == true ? 0 : 8)
               );
               
   write_data(11,frequency & 0xff );
   write_data(12,(frequency >> 8)& 0xff );
   
}

void note_chA(int i)
{
 write_data(0x00, tp[i]&0xff);
 write_data(0x01, (tp[i] >> 8)&0x0f);    
}

void note_chB(int i)
{
 write_data(0x02, tp[i]&0xff);
 write_data(0x03, (tp[i] >> 8)&0x0f);
}

void note_chC(int i)
{
 write_data(0x04, tp[i]&0xff);
 write_data(0x05, (tp[i] >> 8)&0x0f);
}

void noise(int i)
{
 write_data(0x06, i&0x1f);
}

void mode_latch(){
   digitalWrite(pinBC1, HIGH);
   digitalWrite(pinBCDIR, HIGH);
}

void mode_write(){
   digitalWrite(pinBC1, LOW);
   digitalWrite(pinBCDIR, HIGH);
}

void mode_inactive(){
   digitalWrite(pinBC1, LOW);
   digitalWrite(pinBCDIR, LOW);    
}

void write_data(unsigned char address, unsigned char data)
{  
 mode_inactive();  
 //write address

 digitalWrite(latchPin, LOW);
 // shift out the bits:
 shiftOut(dataPin, clockPin, MSBFIRST, address);  

 //take the latch pin high so the LEDs will light up:
 digitalWrite(latchPin, HIGH);

 mode_latch();  
 mode_inactive();

 //write data
 mode_write();  

 digitalWrite(latchPin, LOW);
 // shift out the bits:
 shiftOut(dataPin, clockPin, MSBFIRST, data);  

 //take the latch pin high so the LEDs will light up:
 digitalWrite(latchPin, HIGH);

 mode_inactive();  
}


Bon j'ai trouvé ce code mais je n'ai pas encore regarder plus en details. C'est juste une piste.

Little_Rabbit

#133
Salut,

Citation de: sushy18 le Jeudi 09 Juin 2016, 23:22:59 PM
En regardant les schémas,
Je me demandais si les sons sont stockés ou indiqués dans les dumps de U23 et U24  ou si c'est le processeur (m6809) ou autre qui causait directement avec le chip son ou si c'est stocké ailleurs... ??Je viens de percuter  :D

Je ne connais pas précisément AY-3-8910, mais ce genre de circuit produit un son ou une note d'une certaine fréquence, avec une certaine enveloppe ADSR (Attack, Decay, Sustain, Release) en utilisant une forme d'onde de base (carré, triangulaire ou sinusoïdale). La forme de l'enveloppe est définie par des valeurs que tu vas placer dans certains registres de l'AY, et de même la fréquence jouée est fonction de valeurs mises dans ses registres (et ce pour chaque canal).

Il n'y a donc pas de "sons" stockés à proprement parler. C'est plutôt la partition en quelques sorte qui est stockée en ROM, et le processeur qui commande l'AY lui envoie la succession de notes voulues avec le timing voulu (selon le tempo).

En résumé :
- la partition est stockée en ROM
- une routine (un programme quoi) exécutée par le processeur lit la partition en ROM et traduit ces données en une séquences de valeurs envoyées au bon moment dans les différents registres de l'l'AY

Je ne parle ici que de "chiptune", et je ne sais pas si l'Ice Cold Beer utilise des samples (mais le principe est le même : les samples sont en ROM et le processeur via une routine dédiée va les faire "jouer" par l'AY, chose pour laquelle il n'est pas très doué ;)).

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

sushy18

 <:)
Merci pour ces infos  :-*
Du coup on peut imaginer les partitions dans u23 et u24 ??
Si oui on peux les extraire sachant que les dumps sont dispo pour Mame ??
Si tu ne sais pas demande, si tu sais partage !!
Faudrait pas perdre de vue qu'une borne d'arcade c'est pas une console, c'est rarement plug n play, plus souvent plug n pschitt... (Funkycochise 2008)
"Gratuit ? C'est déjà trop cher !!" ( Crying Freeman 2016)

lipide512

#135
Citation de: sushy18 le Jeudi 09 Juin 2016, 23:22:59 PM
Excellente idée  de nommer les AtMega :D
Après à choisir je serais plutôt sur Leonardo , raphael, Donatello,Michelangelo ..... (:x
Ou si on est à 3 arduino : alex, tam et sylia (cat's eyes)


Normalement les chipsets ont un nom simple à énoncer/écrire : Agus, Denise et Paula par exemple.
Donc ça donnerait Leo, Raph, Dony, Mickey...
Après dans le cas des beatles, faut voir qui est le boss... John ou Paul ?! :) (troll de vieux ??)  =:))

TylerDurden67

Si t'en a deux, je propose de les nommer comme un gars que j'ai rencontré avec ses filles
Clara et Morgane

Little_Rabbit

#137
Re,

Citation de: lipide512 le Vendredi 10 Juin 2016, 13:10:21 PM
Normalement les chipsets ont un nom simple à énoncer/écrire : Agnus, Denise et Paula par exemple.
Donc ça donnerait Leo, Raph, Dony, Mickey...

Mickey c'est déjà pris, c'est le custom chip de la Lynx ! :)
(on peut donc aussi exclure Sally, Maria, Stella, Freddie ;))

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

Robin

Ah ! là je peux peut être aider....

John, Paul, Georges et Ringo...!!! 8)
Bornes :
Midway/ Hydro Thunder 
Sega/ Super Monaco GP
Sega/ Out Run
Sega/ The Lost World
Taito/ Opération Wolf
Konami/ Silent Scope 2/ Fatal Judgement
New Games
Mini Jeutel
Space Attack.

Flipper :
Sega/ South Park

th_vador

#139
Citation de: sushy18 le Jeudi 09 Juin 2016, 23:22:59 PM

Ou si on est à 3 arduino : alex, tam et sylia (cat's eyes)

Cylia voyons! ;)
[EDIT] j'ai rien dit, ça a l'air d'être n'importe quoi au niveau orthographe pour la série, avec parfois S parfois C... et même plus souvent S :P

A part ça, ce post est vraiment incroyable à suivre ^-^
De l'arcade, de la console, des conneries, du Giga Wing 2. TomTom's Lair quoi!
Recherche : Altered Beast (Master System) | Streets of Rage (Megadrive) | Une borne DDR | Un flipper

tilowil

Bonsoir,

MarcoSpecialities vendant le bloc moteur de remplacement (http://www.marcospecialties.com/control/keywordsearch?SEARCH_STRING=59-00063-001+), je me suis tapé le culot de leur demander à quel vitesse tournait le moteur. En principe il répondent assez rapidement. Croisons les doigts pour avoir l'information. Ainsi je pourrait adapter la vitesse de rotation sur un Nema17.

A+

sushy18

Citation de: tilowil le Samedi 11 Juin 2016, 02:08:18 AM
Bonsoir,

MarcoSpecialities vendant le bloc moteur de remplacement (http://www.marcospecialties.com/control/keywordsearch?SEARCH_STRING=59-00063-001+), je me suis tapé le culot de leur demander à quel vitesse tournait le moteur. En principe il répondent assez rapidement. Croisons les doigts pour avoir l'information. Ainsi je pourrait adapter la vitesse de rotation sur un Nema17.

A+

Attention faudrait pas que tu sois plus motivé que moi hein  :-((  :D
Je plaisante bien sûr.... content d'avoir dans l'équipe des personnes motivées et/ou compétentes (les 2 dans ton cas ) :-*
Très bonne initiative , mais je pense qu'ils ne peuvent (s'ils acceptent) donner que les caractéristiques du moteur ( ils garderont jalousement la réf du moteur..)
Ensuite si on arrive à obtenir les RPM faudra les mêmes dimensions de roues/poulie et utiliser le même systèm de rails/déplacement/courroie pour rester fidèle à la vitesse...

Je pense que le plus simple et moins pro au passage serait de "chronométrer" la course sur une distance et d'adapter le nema pour retrouver la même vitesse... ce qui permettrait d'avoir plus de lattitude dans le choix des éléments non ?

Si tu ne sais pas demande, si tu sais partage !!
Faudrait pas perdre de vue qu'une borne d'arcade c'est pas une console, c'est rarement plug n play, plus souvent plug n pschitt... (Funkycochise 2008)
"Gratuit ? C'est déjà trop cher !!" ( Crying Freeman 2016)

sushy18

#142
salut tous les gens

qq'un sait quel est le nom ou la ref de ce switch ??


il est just nommé Magswitch !!

le voici en action ici

ca nous fera économiser toute la structure thermoformé à l'arrière ... p=)
Si tu ne sais pas demande, si tu sais partage !!
Faudrait pas perdre de vue qu'une borne d'arcade c'est pas une console, c'est rarement plug n play, plus souvent plug n pschitt... (Funkycochise 2008)
"Gratuit ? C'est déjà trop cher !!" ( Crying Freeman 2016)

spectroman

Magswitch, ca doit être un switch magnetique