MSX Village forum

La Place des Développeurs Mode graphic MSX 1

Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 21/05/2011 à 09h40

Reprise du message précédent

Oui mais c'est comme ça et maintenant il faut faire avec !!

dans le plupart des jeux les patterns servent au décor et les sprites pour les objets en mouvement

procure toi l'émulateur Meisei qui contient un viewer de screen , de patterns et de sprites pour avoir une bonne idée de la fabrication de jeux sur MSX1

il ne charge que les jeux en cartouche mais il y a déja de quoi faire ;)


:noel
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 21/05/2011 à 10h43
aoineko :
Ça me semble être un énorme gâchis de place mémoire alors qu'on aurait pu avoir un mode 8 couleurs par bloc 8x8 pour bien moins de place !


Il faut être compréhensif et se remettre dans le contexte de l'époque.



La phase de développement d'un processeur graphique à l'époque était de quelques années, et contrairement à la plupart des constructeurs d'ordinateurs à l'époque, qui développait tout leurs processeurs spécifiques en même temps que la machine elle-même, dans le cas du MSX, les concepteurs du standard ont fait leur marché et choisi un processeur qui existait déjà. Cela veut dire, que par rapport à un ordinateur dont tous les composants étaient développés en interne, le MSX avait déjà un train de retard ...



De plus, pour que le nouveau concept ne soit pas trop cher, ils ont choisi un processeur vidéo qui n'était pas tout neuf. Le TMS9918 avait été développé à l'origine pour le TI99/4A, qui a été commercialisé à partir de 1979 ! C'était déjà donc un processeur vidéo qui était sur le marché depuis 4 ans quand il a été choisi pour le MSX !



C'est d'ailleurs toute la philosophie du standard MSX ... Le but n'était pas du tout de créer une machine qui avait des capacités supérieures à celles qui étaient sur le marché, loin de là. Il s'agissait de créer une machine qui serait dans la bonne moyenne de ce qui se faisait à l'époque, mais surtout, de commercialiser un ordinateur moins cher que les concurrents en jouant sur les économies d'échelles, et de forcer par la même le marché à accepter un standard pour les ordinateurs individuels.


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2703

Le 21/05/2011 à 15h50
Ok, merci pour toutes ces infos. Ceci dit, j'suis sur qu'il y a eu une raison, un jour, pour se découpage vertical qui semble si étrange.

Sinon, des infos sur le FillRate (RAM->VRAM et VRAM->VRAM) ? Et sur comment faire pour changer le contenu des différents buffers sans altérer l'affichage courant ?


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 21/05/2011 à 16h56
extrait du Livre du MSX de Daniel Martin a la page 21

REMARQUES : A) La TNP contenant 768 pointeurs vers la TGP , un probléme se pose : le pointeur étant d'un octet , il ne peut prendre que 256 valeurs possibles .
Or , il faut pointer vers 768 patrons différents .
Pour résoudre le probléme , la TNP est divisée en 3 parties égales de 256 octets chacune , la TGP est elle aussi divisée en 3 parties égales de 2048 octets chacune.
Chaque partie de la TNP est en relation biunivoque avec une partie de la TGP.
D'une maniére générale , on peut considérer que l'écran est divisé en trois parties égales :
le tiers supérieur est géré par les premiéres parties de la TNP et de la TGP , le tiers médian par les deuxiémes et le tiers bas par les troisiémes parties

B) D'un point de vue pratique , il est plus aisé de charger la TNP avec trois fois les nombres consécutifs de 0 à 255 .
De cette façon la TNP n'intervient pas dans la programmation et vous pouvez consiférer la TGP comme la mesure d'écran.
C'est d'ailleurs de cette façon que fonctionne le basic en mode SCREEN 2

il fallait le dire ;)




:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2703

Le 21/05/2011 à 20h52
La copie VRAM vers VRAM (sur l'axe Y) de 768 bytes par frame sur MSX 1, c'est réalisable ?
En fait, j'aimerai faire de l'anti-crénelage en switchant chaque frame entre 2 images.
L'idée, c'est d'avoir 2 versions de mes 256 patterns (disons A et B) avec, par exemple, au début, les 3 tiers de l'écran rempli avec A,B,A, puis, la frame suivante, de switcher pour avoir B,A,B. Et ainsi de suite.

J'vais essayer de trouver la doc du TMS9918. :)


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5794

Le 21/05/2011 à 21h23
j'ai trouver ca sur le site de hans Otten, un fichier PDF de 5,63mo dans la section msxdocs, il faut que je mets le lien

voila : http://www.msxarchive.nl/pub/msx/mirrors/hanso/datasheets/chipstms9918.pdf Edité par TurboSEB Le 21/05/2011 à 21h26



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2703

Le 21/05/2011 à 21h30
Merci ; je suis tombé sur le même depuis Wikipédia. ^^
Par contre, si quelqu'un a une version texte (non scan), ça m'intéresse.
(c'est quand même beaucoup plus simple pour chercher des infos)

EDIT : J'ai trouvé ça : tms9918a.txt Edité par aoineko Le 21/05/2011 à 21h39


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: 2703

Le 21/05/2011 à 22h02
Oups, c'est en fait 6 Ko de copie VRAM à VRAM dont j'aurai besoin pour faire mon système de color-mixing (pour l'anti-crénelage) ; je suppose que c'est trop pour une frame à 60 Hz. :(


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

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 22/05/2011 à 19h41
aoineko :
Oups, c'est en fait 6 Ko de copie VRAM à VRAM dont j'aurai besoin pour faire mon système de color-mixing (pour l'anti-crénelage) ; je suppose que c'est trop pour une frame à 60 Hz. :(




6Ko, c'est déjà à peine réalisable en une frame sur MSX2 avec les macro-instructions du VDP (voir les mesures de vitesse ici).

Alors, avec le VDP du MSX1, sans aucune macro-instruction, n'y pense même pas !!!


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2703

Le 22/05/2011 à 20h53
Dans les démos MSX 1, comment font-ils du color-mixing !? Pour émuler un grand nombre de couleurs, ils doivent bien switcher le contenu affiché d'une frame à l'autre. S'ils ne peuvent faire la copie de la VRAM chaque frame, c'est qu'ils doivent avoir toutes les infos déjà en VRAM et doivent avoir un moyen de sélectionner la zone qui sert à l'affichage. Je vais explorer cette idée. :)


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

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 22/05/2011 à 21h34
aoineko :
S'ils ne peuvent faire la copie de la VRAM chaque frame, c'est qu'ils doivent avoir toutes les infos déjà en VRAM et doivent avoir un moyen de sélectionner la zone qui sert à l'affichage.


Ben oui, il suffit d'avoir les tables prêtes et de changer le pointeur de la table des patterns à chaque frame ...


MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2703

Le 22/05/2011 à 21h43
Metalion :
Ben oui, il suffit d'avoir les tables prêtes et de changer le pointeur de la table des patterns à chaque frame ...




Pour mon cas, ça sera parfait.



Par contre, ça explique pas comment dans les démos, ils peuvent avoir 2 images plein écran en VRAM !

Il faut 3 tables de 256 * 8 bytes (2K) pour les patterns d'une image et autant pour les couleurs : donc 12K pour 1 image.

Comment 2 images pourraient tenir dans 16K de VRAM !? :hum


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: 2703

Le 24/05/2011 à 08h27
Dans la doc du TMS9918, y a une section Vram Memory Address Derivation mais je comprends pas à quoi ça sert. Une idée ? :hum

EDIT : En fait, ça semble pas être une fonctionnalité, mais juste la façon dont l'adresse en VRAM d'un élément est construite. ^^ Edité par aoineko Le 24/05/2011 à 12h20


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: 2703

Le 13/10/2011 à 11h44
En screen 2, est-ce réaliste de changer la valeur de toute la matrice de patern (32*24) à chaque frame ? Ça fait 768 octets donc ça me semble largement jouable ; me trompe-je ? :hum


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 26/10/2011 à 22h04
aoineko :
Y a pas moyen de simuler plus de couleur en inter-changeant les couleurs à chaque frame ? Ça risque de piquer un peu les yeux, mais je me demande ce que ça donnerait. ^^



EDIT : A 50 ou 60 Hz, ça pourrait le faire ! Au moins, pour l'anti-crénelage. :)




Salut Aoineko.



Tu trouveras pas mal d'infos qui devraient t'intéresser je pense => http://nl.msx.org/forumtopic723.html



Plus particulièrement le 3ème post ;)


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 26/10/2011 à 22h12
désolé ce n'est pas adapté a ce que veux Aoineko
l'exemple est pour un VDP MSX2 et porte sur les changements de couleur dans la palette ce qui n'est pas supporté par un MSX1
mais ça reste intéressant a lire ;)


:noel
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie