les forums de Grospixels
 
Bienvenue sur le forum de Grospixels : [ S'Enregistrer ]
Déjà inscrit ? [ Connexion ]
 
retour sur le site
rechercher
Index du Forum » » Emulation » » Création d'un émulateur Atari 2600
5 messages • page
1
Auteur Création d'un émulateur Atari 2600
GamerMine
Pixel microscopique


Inscrit : Oct 30, 2020
Messages : 3

Hors ligne
Posté le: 2020-10-30 23:09
Bonjour à tous,
Depuis quelques jours j'essaye de créer un émulateur d'Atari 2600, j'ai déjà bien commencé à programmer le processeur en C++. J'ai commencé à chercher des informations sur le Television Interface Adapter (TIA) et j'ai trouvé des information intéressante qui me font avancer. MAIS il y a une chose que je ne comprend pas, c'est la communication entre le 6507 et le TIA. Comment ces deux éléments communiquent ensemble ?

J'ai pu lire que le TIA effectuais 3 opération alors que le microprocesseur n'en effectue qu'une sur une durée égale, que doit lire le TIA, a quels adresses mémoire ?

Voici d'ailleurs quelques petites choses intéressante que j'ai pus trouvé :
https://www.atariarchives.org/dev/tia/
https://web.archive.org/web/20200217...icles/tia.html
https://cdn.hackaday.io/files/164627...568/stella.pdf
http://www.obelisk.me.uk/6502/
https://www.masswerk.at/6502/6502_instruction_set.html

C'est probablement des questions difficiles à traiter mais j'avoue être complètement perdu avec cette histoire de TIA et sa communication avec le 6507. Je suis preneurs de toutes information à propos du TIA et du 6507

Kaede
Pixel visible depuis la Lune


Inscrit : Mar 06, 2002
Messages : 5125

Hors ligne
Posté le: 2020-10-30 23:47   [ Edité le: 2020-10-30 23:47 ]
Salut,

Je ne saurais vraiment pas te répondre, mais il y a pas mal d'émus 2600 open-source, dont Stella et MAME, entre autres. Peut-être que tu pourras trouver des réponses dans leur code source, si tu n'arrives pas à les trouver dans la doc'.

Sinon peut-être que quelqu'un ici saura t'aider en détail, mais c'est technique/pointu comme demande (mais ce forum est là pour ça !)

Par curiosité, quel est ton objectif sur le projet, tu comptes émuler "tout" avec gestion de l'affichage et des manettes ?

GamerMine
Pixel microscopique


Inscrit : Oct 30, 2020
Messages : 3

Hors ligne
Posté le: 2020-10-31 00:57
Bonsoir,

Merci pour ta réponse ! Je vais aller chercher du coté des émulateurs déjà existants, je trouverais effectivement peut-être ma réponse =)

Mon bute serais déjà de réussir à lire une ROM sans Bankswitch et avoir un affichage ce serai déjà très bien. Pour la gestion des manettes c'est à voir si j'ai le courage de le faire xD

J'ai continué mes recherches en relisant certaines lignes du "Stella Programmer's Guide" présent ici: https://cdn.hackaday.io/files/1646277043401568/stella.pdf et j'ai peut-être compris comment ça fonctionnait (je précise que je PENSE avoir compris xD) : En fait le TIA a plusieurs adresses pré-définies dont la liste est présentes ici : https://www.atariarchives.org/dev/tia/addresssummary.php et le microprocesseur va changer des valeurs à ces adresses. Le TIA va pouvoir donc les lires et réagir en conséquence, ma question devient alors : Le TIA, il fait quoi avec ces valeurs ? Quels actions doit-il faire et quand ?

Voila, j’espère que je suis un minimum compréhensible parce que c'est pas évident de s’exprimer quand c'est aussi technique

Kaede
Pixel visible depuis la Lune


Inscrit : Mar 06, 2002
Messages : 5125

Hors ligne
Posté le: 2020-10-31 09:40   [ Edité le: 2020-10-31 10:01 ]
Citation :
Le 2020-10-31 00:57, GamerMine a écrit :
Voila, j’espère que je suis un minimum compréhensible parce que c'est pas évident de s’exprimer quand c'est aussi technique

Ta question est très claire, malheureusement j'en sais fichtre rien ^^

C'est cool que tu aies les valeurs (adresses) nommées, genre COLUP0.
Je regarde le driver dans MAME, et on a les noms en commentaires (et noms de variables).
Le code n'est pas excessivement commenté, mais il doit y avoir moyen de le comprendre vu qu'il n'a pas l'air trop spaghetti. En zieutant le code, on dirait que les valeurs sont consommées et utilisées pour le son et l'image, pour donner un exemple, un pixel ("ball" ils appellent ça ?) à un endroit ou un autre. Enfin ça tu sais déjà je me doute Pour aller plus loin (réimplémenter), j'avoue, il faudrait comprendre tout le code dans le détail.
Bon, 2000 lignes de code quand même (+ en comptant les autres fichiers sources/headers).

Il y a quelques autres endroits où tu pourrais tenter de poser ta question, par exemple
Reddit https://www.reddit.com/r/EmuDev/
Ils ont aussi un Discord (https://discord.com/invite/dkmJAes).

Tiens-nous au courant

edit : je vois que je ne t'ai pas souhaité la bienvenue dans mon post au-dessus, quel rustre
donc : bienvenue sur le forum, j'espère que tu t'y plairas, la culture n'y est pas technique "à ce point" mais certains s'y intéressent et on a des personnes dans l'IT et qq programmeurs -de métier ou non- sur le forum.
Perso je n'ai pas réellement connu le 2600 à l'époque, j'étais trop jeune, mes premières vraies machines de jeu étaient une Master System et un Amiga.
Si tu en as l'occasion, n'hésite pas à dropper un petit post dans le topic des présentations https://grospixels.com/phpBB/viewtopic.php?topic=7884&forum=16&start=920 pour faire connaissance

GamerMine
Pixel microscopique


Inscrit : Oct 30, 2020
Messages : 3

Hors ligne
Posté le: 2020-10-31 17:31
Salut,

J'ai continué à essayer de comprendre comment le TIA fonctionne, je pense avoir enfin trouvé mais je ne peut pas dire que je suis sûr qu'il fonctionne comma ça :

- Il y a tout d'abord un certains nombre de registres pré-assignés dans la mémoire entre 0x00 et 0x7F d'après ce site : https://www.randomterrain.com/atari-2600-memories-tutorial-andrew-davie-05.html (la ROM du jeu commencerais donc à 0x1000 d'après ce même site)

- Le CPU modifie les valeurs de ces registres

- Le TIA va exécuter 3 fois plus d'instruction que le microprocesseur en un "tour". Ce qui veut dire que le TIA va lire tous ces registres et "dessiner" 3 fois l'écran alors que le processeur n'aura exécuté qu'une instruction

Voila ce que j'ai compris je vais essayer de mettre tous ça en application et puis je vous retient au courant de mon avancé sur ce projet

Citation :
edit : je vois que je ne t'ai pas souhaité la bienvenue dans mon post au-dessus, quel rustre

C'est pas grave je ne t'en tiendrais pas vigeur


Index du Forum » » Emulation » » Création d'un émulateur Atari 2600

5 messages • page
1




Forum phpBB modifié par www.grospixels.com (© 2011 Grospixels)