MSX Village forum

La Place des Développeurs Projet Carwar

aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2680

Le 28/01/2011 à 00h55

Reprise du message précédent

Je viens de penser à un truc... J'ai pas besoin d'avoir mon circuit en RAM !

Il suffit que je fasse un backup des 4 zones de 13x11 ou je vais afficher ma voiture (que je pourrais surement stocker qq part dans la VRAM) puis d'utiliser ces blocks pour effacer mes voitures la prochaine fois. A cause de l'affichage sur 2 pages graphiques, j'aurai besoin de tout stocker en double, mais 8x13x11 (1144 octets), ça doit rentrer sans problème dans les espaces inoccupés de la VRAM. Reste plus qu'à trouver comment accéder à ces zones. ^^



GuillianSeed :
Sur MSX, ça tourne nikel et sur Turbo-R je m'entraine en crazy mode ! :p




Merci ! Par contre, je suis étonné que tu ais encore le Crazy Mode sur Turbo-R vu que normalement j'attends la fin du balayage vertical avant de dessiner une nouvelle image... ça devrait pas aller plus vite. A moins qu'on soit à 60fps sur Turbo-R et seulement à 30 sur MSX2. Edité par aoineko Le 28/01/2011 à 01h01


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

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 28/01/2011 à 01h07
Vous sous-estimez le MSX les gars ! N'oubliez pas que Mario Kid était un jeu en screen 10. Ce mode d'écran prend autant de place que le screen 8. (D'ailleurs, je me demande ce qu'est devenu ce jeu.)

Pour désactiver les sprites, il faut mettre le bit 1 du registre 8 du VDP à 1.

Si jamais tu aurais besoin de plus de place pour cacher des graphismes dans la VRAM, mets le bit 7 du registre 9 à 0 pour voir un affichage en mode 256 x 192 (au lieu de 256 x 212).

Je te conseille "Le Livre du MSX2". On le trouve en PDF de très bonne qualité sur Internet.
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2680

Le 28/01/2011 à 01h44
Si je n'utilise pas les sprites, en théorie (?), même en 256x212, il me reste 256*44 sur chacune des pages graphiques ; ce qui suffirait largement à mon bonheur.

J'ai Le livre du MSX 2 mais point de vue graphique, je le trouve pas aussi complet que la doc du V9938. Le seul problème de la doc du V9938, c'est que ce n'est pas numérisé et que pour la recherche ce n'est donc vraiment pas pratique.

Bon, pour bien finir la journée, une nouvelle version de Carwar avec la gestion des 4 joueurs simultanés : Carwar v0.0.2 :tchin
Pour les joueurs 3 et 4, les directions se font avec le stick du joystick et l'accélération avec le 1er bouton.

EDIT : Le livre du MSX 2 est différent du livre Pratique du MSX 2 ? J'ai le 2e, pas le premier.

EDIT 2 : J'ai trouvé. Ce n'était pas le même ; ça va me faire de la lecture en plus. ^^ Edité par aoineko Le 28/01/2011 à 01h53


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

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 28/01/2011 à 09h51
Bravo pour ce que tu as déjà fait comme développement :top

C'est un excellent début !



aoineko :
Je viens de penser à un truc... J'ai pas besoin d'avoir mon circuit en RAM !


A la bonne heure ! ... C'est la meilleure solution, il n'y a pas photo.



aoineko :
Si je n'utilise pas les sprites, en théorie (?), même en 256x212, il me reste 256*44 sur chacune des pages graphiques


Même si tu utilises les sprites, il n'y a qu'une seule série de tables en VRAM (il n'y en a pas une par page), et la bonne nouvelle c'est que c'est toi qui détermine où elles se disposent. Donc cet espace est effectivement libre, au moins sur toutes les autres pages.


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)
   
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 28/01/2011 à 18h12
Hallucinant de vitesse :|
Tu vas encore me faire regretter de pas tâter de l'assembleur :'(
Mets nous vite un petit décor STP

PS il ya 2 voies qui s'ouvrent à toi :
Faire un clone de super sprint (ce vers quoi tu tends) ou faire des voitures plus grosses et plus détaillées mais plus maniables plus dans l'esprit des Konami holdies

En tout cas excellent travaille :top
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2680

Le 28/01/2011 à 20h16
Ou la 3e voie... faire un jeu diffèrent. ^^


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 02/10/2009 à 19h33

Messages: 1880

Le 28/01/2011 à 20h20
Peux avoir un PAYLOAD, en screen5 ? :p
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2680

Le 29/01/2011 à 00h09
Bon, j'ai passé pas mal de temps dans les docs techniques et les histoires d'espace VRAM hors page graphique n'est toujours pas claire.

Pour les pages graphiques, l'adresse de départ est censé être codé dans R2 * 400h ; hors, les valeurs qui marchent pour moi sont 1Fh (1er page) et 3Fh (2e page). Ai-je raté qq chose ?

Pareil pour l'adresse de la zone TAS (table des attributs sprite) et TGS (table des formes de sprite) respectivement à 36h (* 80h) et 07h (* 800h) ?

En fait, je comprends pas :
1. la correspondance entre les valeurs des registres et les adresses réelles en VRAM.
2. la correspondance entre les adresses graphiques en X/Y et les adresses mémoires en VRAM.

Toute aide serait la bienvenue. :)


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 774

Le 29/01/2011 à 01h19
C'est vrai que pour la gestion des adresses de départ des différentes tables ça a l'air compliqué.

Par contre je ne comprends pas ta deuxième question, c'est expliqué en page 150 de pratique du MSX2 :hum



Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2680

Le 29/01/2011 à 01h38
MSXosaure :
Par contre je ne comprends pas ta deuxième question, c'est expliqué en page 150 de pratique du MSX2 :hum




Ça doit être la fatigue. ^^

Effectivement, on peut adresser toutes la VRAM via les coordonnées X/Y.



D'ailleurs, vous connaissez pas un visualisateur de VRAM ? Ça serait bien pratique dans BlueMSX. :)


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

Le 29/01/2011 à 02h53
J'ai commencé à transférer mes donnés en VRAM (après la 2e page) et à afficher mes sprites avec des copies VRAM to VRAM ; ça marche nickel ! :top

Du coup, c'est encore plus rapide... :fou

Si ça continue, il va falloir que je revois mes ambitions à la hausse. ^^

Par contre, vu que mes données sont maintenant en VRAM, faut absolument que je bloque le joueur en Y sinon il peut aller écraser les sprites.


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

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 29/01/2011 à 13h04
aoineko :
J'ai commencé à transférer mes donnés en VRAM ... c'est encore plus rapide


C'est que je te dis depuis le début :heink



aoineko :
je comprends pas la correspondance entre les valeurs des registres et les adresses réelles en VRAM


Les registres contiennent une partie de l'adresse directe en VRAM. Comme il fallait garder la compatibilité entre MSX1 et MSX2, ils ont du parfois scinder ce codage en 2 registres distincts, mais le principe reste le même.



Par exemple, dans le cas de la TAS, les bits b7 à b14 de l'adresse sont contenus dans le registre R#5, et les bits b15 et b16 sont dans le registre R#11. L'adresse de la TAS dans la VRAM est donc égale à (R#11 x 32768 + R#5 x 128).


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

Le 29/01/2011 à 14h27
Metalion :
C'est que je te dis depuis le début :heink


Je sais bien, mais j'suis quand même content de l'avoir réalisé. ^^



Metalion :
Par exemple, dans le cas de la TAS, les bits b7 à b14 de l'adresse sont contenus dans le registre R#5, et les bits b15 et b16 sont dans le registre R#11. L'adresse de la TAS dans la VRAM est donc égale à (R#11 x 32768 + R#5 x 128).




Pour le TAS, j'ai 0 dans mon registre R#11 et 36h dans R#5, donc 36h * 80h = 1B00h alors que ma table des attributs sprite est censé se trouver en FA00h. Je vois pas comment on peut passer de 36h à FA00h !? :fou Edité par aoineko Le 29/01/2011 à 14h28


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10287

Le 29/01/2011 à 15h11
le registre 5 code uniquement les bits de poids forts S14 S13 S12 S11 S10 S9 S8 S7 , S6 S5 S4 S3 S2 S1 S0 sont omis

dans le registre 11 on récupére les 2 bits de poids forts supplémentaire S15 S16

maintenant pour lire l'état des registres il faut être dans mode d'écran concerné si tu travailles en screen 8 il faut sauvegarder les registres dans une zone mémoire afin de les relire aprés car le simple fait de repasser en écran texte réinitialise les tables

1B00 est l'adresse de la TAS en screen 1 et screen 2

sur MSX1 S14 n'existe pas réservé aux MSX2 et le registre 11 aussi


:noel
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 29/01/2011 à 15h15
aoineko :
Pour le TAS, j'ai 0 dans mon registre R#11 et 36h dans R#5, donc 36h * 80h = 1B00h alors que ma table des attributs sprite est censé se trouver en FA00h. Je vois pas comment on peut passer de 36h à FA00h !?


Il y a une couille dans le potage ... :hum

Parce que pour que ta TAS soit à $FA00, le R#11 devrait être à 1 et le R#5 à 244 (1x32768+244x128=64000).



EDIT : Jipe a raison, tu ne peux lire les valeurs de registres que quand tu es dans le mode graphique concerné. Après cela dépend de ta façon de basculer en SCREEN 8. Soit tu as fait appel au BIOS, et alors c'est lui qui a initialisé toutes les valeurs de tables, soit tu fais ça tout seul en manipulant les registres, et alors c'est toi qui doit tout définir.


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

Le 29/01/2011 à 17h48
En fait, je regarde la valeur des registres VDP via le débuggeur de BlueMSX (quand je suis en mode 8). Si ça se trouve, y a un bug dans BlueMSX. ^^

EDIT :

Je passe en mode 8 en changent directement les registres R#0 à R#2. Je touche pas aux autres... c'est donc certainement normal que j'ai des valeurs bizarre dans mes registres d'adressages. :fou Je vais me faire une routine d'initialisation plus propre.

Par contre, je vois pas de registre pour setter l'adresse des zones TCS (table des couleurs sprite) et TPL (table de palette) ; elles sont dépendante de l'adresse de la TAS et de la TGS ? :hum Edité par aoineko Le 29/01/2011 à 17h55


On est toujours ignorant avant de savoir.
Github    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie