Amstrad Plus Index du Forum

Amstrad Plus
Découverte de la gamme Old et Plus des Cpc d'Amstrad.

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Playcity

 
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Hardware
Sujet précédent :: Sujet suivant  
Auteur Message
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Dim 7 Sep - 22:50 (2014)    Sujet du message: Playcity Répondre en citant

Qu'est ce que la Playcity ? La Playcity est une nouvelle extension développée par TotO connue sous le nom de CTC-AY.
Cette nouvelle extension comporte 2 processeurs YMZ-294 compatible Ay, programmable sans passer par le PPI, ce qui permet d'avoir accès à 6 canaux Ym en plus des 3 déjà présents sur vos Cpc. Notez tout de même une petite différence d'utilisation sur vos Cpc Old et Plus car, si le son sort par les hauts parleurs de votre Cpc Old, sur la version Plus, il faudra utiliser des enceintes externes (rien de bien grave en fait). Grace au processeur Z80 CTC, vous aurez également accès enfin aux interruptions vectorisées (Im2) non bugguées, ainsi qu'aux Interruptions Non Maskable (à l'adresse #66, comme tout le monde le sait déjà).... etc...
Vous pourrez également programmer la ligne à laquelle votre interruption commencera.


Plus d'informations ici


--------------


What is Playcity ? Playcity is a new expansion made by TotO well known as CTC-AY. This new expansion allows you to use 2 processors more YM-294 compatible Ay, without programming PPI. It allows you to access 6 channels more than old Cpc. Noticed that Cpc Old and Cpc Plus sound will be different because you will need to plug external loud speakers to ear sound from your Cpc Plus. The Z80 CTC now gives you access in vector interrupt handling (IM2), and NMI (Non Maskable Interrupt at adress #66)... etc...
You also could programmed in which lines will start your interruption.

More informations here


Visit : http://www.cpcwiki.eu/index.php/PlayCity


y a écrit:
; ---------------------------------------------------------------------------
; Supergrafx hardware definition / (c) SyX 2013
; ---------------------------------------------------------------------------


; ---------------------------------------------------------------------------
; CTC
; ---------------------------------------------------------------------------
; I/O Ports
CTC_TIM0            EQU $F880   ; Channel 0 (I: 4 MHz clock | O: YMZ clock)
CTC_TIM1            EQU $F881   ; Channel 1 (I: Cursor CRTC | O: NMI)
CTC_TIM2            EQU $F882   ; Channel 2 (I: 4 MHz clock | O: CTC_TIM3 TRG)
CTC_TIM3            EQU $F883   ; Channel 3 (I: CTC_TIM2 TO)


; ---------------------------------------------------------------------------
; D0-D7 : Data bus (R/W) Used for communicating with the Z80
; ---------------------------------------------------------------------------
; Control Word
; ------------
; D7: Interrupt (0: Disable / 1: Enable)
; D6: Mode (0: Timer / 1: Counter)
; D5: Prescaler Value (0: 16 / 1: 256) *** Only in Timer mode
; D4: Clock/Trigger Edge Selection (0: Falling Edge / 1: Rising Edge)
; D3: Timer Trigger (0: Automatic Trigger when time constant is loaded 
;                    1: CLK/TRG pulse starts timer) *** Only in Timer mode
; D2: Time Constant (0: No Time Constant / 1: Time Constant follows)
; D1: Reset (0: Continued Operation / 1: Software Reset)
; D0: Control or Vector (0: Vector / 1: Control Word)
; ---------------------------------------------------------------------------
; Constants for Control Word
CTC_NO_INT           EQU %00000000
CTC_INT             EQU %10000000
CTC_USE_TIMER       EQU %00000000
CTC_USE_COUNTER   EQU %01000000
CTC_PRESCALER_16   EQU %00000000
CTC_PRESCALER_256   EQU %00100000
CTC_FALLING_EDGE     EQU %00000000
CTC_RISING_EDGE     EQU %00010000
CTC_AUTO_TRIGGER     EQU %00000000
CTC_CLK_TRIGGER     EQU %00001000
CTC_NO_CONSTANT     EQU %00000000
CTC_CONSTANT         EQU %00000100
CTC_NO_RESET         EQU %00000000
CTC_RESET           EQU %00000010
CTC_VECTOR           EQU %00000000
CTC_CONTROL         EQU %00000001


    
; ---------------------------------------------------------------------------
; YMZ
; ---------------------------------------------------------------------------
; I/O Ports
YMZ_SELECT_LEFT     EQU $F984   ; Select register (Left YMZ)
YMZ_WRITE_LEFT      EQU $F884   ; Write in the selected register (Left YMZ)
YMZ_SELECT_RIGHT    EQU $F988   ; Select register (Right YMZ)
YMZ_WRITE_RIGHT     EQU $F888   ; Write in the selected register (Right YMZ)


; ---------------------------------------------------------------------------
; YMZ Registers
YMZ_REG_00          EQU $00     ; Channel A Frequency (8 Bit Fine Tune)
YMZ_REG_01          EQU $01     ; Channel A Frequency (4 Bit Coarse Tune)
YMZ_REG_02          EQU $02     ; Channel B Frequency (8 Bit Fine Tune)
YMZ_REG_03          EQU $03     ; Channel B Frequency (4 Bit Coarse Tune)
YMZ_REG_04          EQU $04     ; Channel C Frequency (8 Bit Fine Tune)
YMZ_REG_05          EQU $05     ; Channel C Frequency (4 Bit Coarse Tune)
YMZ_REG_06          EQU $06     ; Noise Frequency (5 Bit Period Control)
YMZ_REG_07          EQU $07     ; Mixer Setting (Noise CBA + Tone CBA) 
YMZ_REG_08          EQU $08     ; Channel A Volume (Envelope + 4 Bits)
YMZ_REG_09          EQU $09     ; Channel B Volume (Envelope + 4 Bits)
YMZ_REG_0A          EQU $0A     ; Channel c Volume (Envelope + 4 Bits)
YMZ_REG_0B          EQU $0B     ; Envelope Frequency (8 Bit Fine Tune)
YMZ_REG_0C          EQU $0C     ; Envelope Frequency (8 Bit Coarse Tune)
YMZ_REG_0D          EQU $0D     ; Envelope Shape (4 Bits)
YMZ_REG_0F          EQU $0F     ; Control Power (%0000----)


; ---------------------------------------------------------------------------











Download CTC documentation!



_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Dernière édition par Ast le Ven 13 Fév - 18:42 (2015); édité 1 fois
Revenir en haut
Publicité






MessagePosté le: Dim 7 Sep - 22:50 (2014)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Mer 29 Oct - 16:19 (2014)    Sujet du message: Playcity Répondre en citant

Bonne Nouvelle,
La partie audio de la PlayCity a été Implémenté en une poignée de jours à SymAmp.
Merci à SyX et Prodatron.


-----------


A good news, audio part of the Playcity has been implemented in SymAmp in a few days.
Thanks to SyX and Prodatron.






Thanks to TotO for this great information taken in Cpc Rulez Forum
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Mer 29 Oct - 22:17 (2014)    Sujet du message: Playcity Répondre en citant

Pour plus d'informations, c'est ici que ça se passe.

----------------------


For more informations, follow us here.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Sam 1 Nov - 18:28 (2014)    Sujet du message: Playcity Répondre en citant

Bonne Nouvelle, un support PlayCity (partie son seulement) été ajouté à l'emulateur Mess.
Toutes les infos :


https://github.com/mamedev/mame/blob/ed ... playcity.h
https://github.com/mamedev/mame/blob/ee ... playcity.c


-------------------
A good News. A PlayCity 's support (Sound only ) has been added to Mess emulator.
More informations :


https://github.com/mamedev/mame/blob/ed ... playcity.h
https://github.com/mamedev/mame/blob/ee ... playcity.c


Thanks to TotO for this information (taken from CpcRulez Forum)
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Ven 5 Déc - 15:30 (2014)    Sujet du message: Playcity Répondre en citant

Il reste encore quelques cartes fabriquées pour 19,90€ et vu la baisse de l'euro, la prix passera à 24,90€. Notons quand même que TotO ne fait aucun bénéfice sur ces cartes.... 
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Ast
Administrateur

En ligne

Inscrit le: 05 Sep 2014
Messages: 2 321

MessagePosté le: Jeu 8 Jan - 17:02 (2015)    Sujet du message: Playcity Répondre en citant

J'ai récupéré quelques infos concernant la puce sonore installée dans la Playcity, à savoir la Yamaha YMZ 294.
Ce qui est intéressant sur la Playcity, c'est le fait de n'utiliser que 2 Outs pour sélectionner/écrire dans les différents registres du YMZ 294. De plus, je trouve également intéressant le fait de pouvoir modifier la  fréquence à laquelle la puce rejouera la musique.(1 out à l'initiation.) Pour rappel, sur Cpc le Ay est cadencé à 1 mhz alors que sur Atari ST, celui-ci est cadencé à 2 mhz.
Je vous laisse réfléchir à tout ceci. Bonne lecture!



Yamaha YMZ294


The Yamaha YMZ294 chip is a clone of the General Instrument AY-3-8910, a three-voice programmable sound generator used in many arcade games, the Vectrex and Intellivision game consoles, and most famously appeared in the Apple IIMockingboard sound card.
It is the big brother of the YMZ284, adding support for clock speeds of up to 6 MHz via pin select and a testing pin.

Table of Contents
[*]Registers
[*]Calculating the Tone Period
[*]Calculating the Noise Period
[*]Calculating the Envelope Frequency
[*]Understanding Volume Levels
[*]Built-in Envelopes



Pin Descriptions




















#


Name


Mode


Function


1


/WR


Input


Write enable


2


/CS


Input


Chip select


3


A0


Input


Address/Data toggle


4


VDD


+5V


5


SO


Output


Analog output


6


GND


Ground


7


øM


Input


Master clock


8


6/4


Input1)


Clock select


9


/IC


Input2)


Initial clear


10


/TEST


Output


Test pin (usually N/C)


11


D7


Input


Data bus (MSB)


12


D6


Input


Data bus


13


D5


Input


Data bus


14


D4


Input


Data bus


15


D3


Input


Data bus


16


D2


Input


Data bus


17


D1


Input


Data bus


18


D0


Input


Data bus (LSB)






Registers



















Address


Function


D7


D6


D5


D4


D3


D2


D1


D0


$00


Channel A frequency


8-bit fine tone adjustment


$01


4-bit rough tone adjustment


$02


Channel B frequency


8-bit fine tone adjustment


$03


4-bit rough tone adjustment


$04


Channel C frequency


8-bit fine tone adjustment


$05


4-bit rough tone adjustment


$06


Noise frequency


5-bit noise frequency


$07


Mixer setting


Noise


Tone


C


B


A


C


B


A


$08


Channel A level


M


L3


L2


L1


L0


$09


Channel B level


M


L3


L2


L1


L0


$0A


Channel C level


M


L3


L2


L1


L0


$0B


Envelop frequency


8-bit fine adjustment


$0C


8-bit rough adjustment


$0D


Envelope shape


CONT


ATT


ALT


HOLD


$0E


Envelope counter


Internal use only: not addressable


$0F


Control power


'0'


'0'


'0'


'0'






Calculating the Tone PeriodOn each of the YMZ284's square wave channels, the frequency is calculated using the following equation:

Where øM is the master clock speed and TP is the 12-bit value stored in registers $0n and $0n+1. The YMZ284 responds only when clocked at frequencies of 1 MHz to 4 MHz.
We can calculate the tone period by substituting Hz with the frequency of the desired note and solving the equation for TP. For example, a C in the fifth octave (MIDI note #72) should be 523.251 Hz. We can plug in the variables and solve for TP as:

Which gets us our correct tone period of 239. So to make one of the square wave channels play C, we would write 239 to its register.



Calculating the Noise PeriodThe frequency of an enabled noise channel is calculated using the following equation:

Where øM is the master clock speed and NP is the 5-bit value stored in the register $05. The YMZ284 responds only when clocked at frequencies of 1 MHz to 4 MHz.



Calculating the Envelope FrequencyThe base frequency for the YMZ284's envelope generator is calculated as follows:

Where øM is the master clock speed and EP is the 16-bit value stored in registers $0B and $0C. The YMZ284 responds only when clocked at frequencies of 1 MHz to 4 MHz.
The actual frequency of the generated envelope will be 1/32 of the envelope repetition period, meaning the Hz above represents 32 repetitions of the envelope shape.



Understanding Volume Levels


The volume levels of the chip, and consequently of the envelope generator, are logarithmic: not linear.
In linear volume, one could expect that a volume level of 5 is half the volume level of 10. In logarithmic volume, this is not at all the case. The difference between volume levels grows exponentially, with 15 being almost twice as loud as 13, and the difference from 0 to 6 almost imperceptible.
Maximum volume output is regulated to 1V by the chip. You can see how loud each volume level will be relative to this maximum volume in the graph at the right.
When using an envelope on the channel, the transition from 0 to 15 will occur over the length specific by the envelope period (EP).




Built-in EnvelopesControlling the built-in envelopes of the YMZ284 can be somewhat difficult if you are not familiar with old software sound generators.
The envelope generator counts the envelope clock 32 times within the frequency specified. The envelope's level is determined by the 5-bit output of register $0E, which is read internally.
According to the documentation, the shape of the envelope is created by increasing, decreasing, stopping or repeating the counter in $0E.
The lower four bits of register $0D are used as toggles for CONT, ATT, ALT and HOLD, and can select one of 10 envelope shapes from the following table:












CONT


ATT


ALT


HOLD


Envelope Shape


0


0


*


*





0


1


*


*





1


0


0


0





1


0


0


1





1


0


1


0





1


0


1


1





1


1


0


0





1


1


0


1





1


1


1


0





1


1


1


1







1) LOW=6MHz, HIGH=4MHz
2) Includes built-in pull-up resistor
Source : http://hardchord.org/yamaha_ymz294
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 16:02 (2017)    Sujet du message: Playcity

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Hardware Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com