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

Le 08/02/2011 à 14h10

Reprise du message précédent

Nouvelle version de Carwar avec ajout d'un ombreur automatique des circuits : carwar_0_0_5.zip.

J'ai retiré aussi le passage forcé au 50Hz. Si ça plante toujours sur un vrai MSX, je posterai mon code d'initialisation (passage en mode 8 et init des zones mémoires) car c'est la seule partie qui a vraiment changé depuis la dernière version qui marchait.


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 08/02/2011 à 16h02
debug avec Ru-MSX

ancienne version : VDP command: C0 (0,0)->(0,0) [0,212] Color 146

nouvelle version : VDP command: C0 (0,0)->(0,0) [256,256] Color 0

le fait d'aller a 256 peut t'il causer le probléme car la coordonnée s'arrête a 255 en horizontal

sinon dur de relire et de modifier les registres avec le .rom

la derniére version en 50Hz ne marche pas mieux sur mon vrai MSX


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2904

Le 08/02/2011 à 17h01
Au tout début du jeu, je fais 2 HMMV (fill from VDP) en 0,0 et 0,256 d'une taille de 256x256 pour initialiser toute la VRAM à 0 (plus pratique pour débugger).

Tu penses que ça peut être problématique ? :hum

Sinon, pour la taille de 256, passer un NX à 256 permet bien de remplir les pixels de 0 à 255. Non ?

EDIT : Et merci pour tous tes tests ! :top Edité par aoineko Le 08/02/2011 à 17h01


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 08/02/2011 à 17h26
le NX va de 0 a 511 mais pour le screen 8 il doit s'arrêter a 255


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2904

Le 08/02/2011 à 17h42
Jipe :
le NX va de 0 a 511 mais pour le screen 8 il doit s'arrêter a 255




Tu es sur !? :hum



NX étant la largeur, une copie est censé aller de DX à DX + NX - 1. Ou sinon, j'ai vraiment rien compris. ^^


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 08/02/2011 à 18h12


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2904

Le 08/02/2011 à 18h24




Cool, une doc du V9938 en version numérique. :top



Par contre, en relisant la doc du HMMV j'y comprends toujours la même chose : les coordonnées X sont bien limité à 255 (ou 511), mais NX représentant la largeur de la copie, s'il est égale à 256 et que DX est égale à 0, alors les coordonnées affectées sont de 0 à 255. J'ai raté qq chose !? :hum



Quand tu copies un bloc de 32x32 en mémoire, tu mets bien NX à 32, non ?


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 08/02/2011 à 18h36
je ne programme pas en LM je me contente du Basic mais j'utilise les outils mis a disposition
disons que par le passé j'ai adapté pas mal de programmes MSX1 qui ne tournaient pas sur MSX2 et il a bien fallu fouiller dedans

pour le reste tu est seul maitre a bord ,essaye quand même en limitant a 255 ça ne coute rien car je m'y perd dans cette façon de programmer non humaine générée par le C


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2904

Le 08/02/2011 à 19h03
Voici une version ou je remplie la VRAM en 2 fois 0,0[128,212] et 128,0[128,212] : carwar_prb_crashMsx.zip.


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 09/02/2011 à 10h28
aoineko :




Cool, une doc du V9938 en version numérique. :top



Fait attention ! Cette doc contient des erreurs. Par exemple, le registe 45.

aoineko :


Par contre, en relisant la doc du HMMV j'y comprends toujours la même chose : les coordonnées X sont bien limité à 255 (ou 511), mais NX représentant la largeur de la copie, s'il est égale à 256 et que DX est égale à 0, alors les coordonnées affectées sont de 0 à 255. J'ai raté qq chose !? :hum



Quand tu copies un bloc de 32x32 en mémoire, tu mets bien NX à 32, non ?


NX va de 0 à 511 aussi. Pour un bloc de 32x32, NX et NY doivent être à 31 si je me souviens bien. De toute façon, c'est facile à vérifier. Edité par GDX Le 09/02/2011 à 10h36
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1503

Le 09/02/2011 à 11h30
GDX :
Pour un bloc de 32x32, NX et NY doivent être à 31 si je me souviens bien.


Non, NX et NY représentent le Nombre de pixels dans la direction X et dans la direction Y pour la commande spécifiée.

Pour un bloc de 32x32, la bonne valeur de NX et NY est bien 32.


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 09/02/2011 à 12h55
cette derniére version refuse aussi d'afficher autre chose qu'un écran noir

j'ai décortiqué un morceau étrange F3E8 n'est pas un registre de VDP mais l'info trigger
quand je rempli de NOP de 82A7 a 82B6 j'ai toujours l'écran noir mais le CAPS LOCK fonctionne ainsi que le REN-SHA ( tir automatique )

les infos des variables systéme viennent d'ici : http://map.grauw.nl/resources/msxsystemvars.php
et coincident bien avec celles de pratique du MSX2

828F: ld a,(#f3e0) RG1SAV #F3E0 1 Content of VDP(1) register (R#1)
8292: res 4,a
8294: res 3,a
8296: ld (#f3e0),a
8299: out (#99),a
829B: ld a,#81
829D: out (#99),a
829F: ld a,#1f
82A1: out (#99),a
82A3: ld a,#82
82A5: out (#99),a
82A7: ld a,(#f3e8) TRGFLG #F3E8 1Information about trigger buttons and space bar state


7 6 5 4 3 2 1 0
| | | | +-- Space bar, trig(0) (0 = pressed)
| | | +---------- Stick 1, Trigger 1 (0 = pressed)
| | +------------ Stick 1, Trigger 2 (0 = pressed)
| +-------------- Stick 2, Trigger 1 (0 = pressed)
+---------------- Stick 2, Trigger 2 (0 = pressed)

82AA: res 7,a
82AC: or (ix+#04)
82AF: ld (#f3e8),a
82B2: out (#99),a
82B4: ld a,#89
82B6: out (#99),a
82B8: ei
82B9: pop ix
82BB: ret


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2904

Le 09/02/2011 à 13h52
Voici une nouvelle version avec les débuts de mon système de menu : carwar_0_0_6.zip.
Les menus ne sont pas encore fonctionnel ; y a juste la techno. ^^
Jipe, si ça marche toujours pas, je te ferai une version minimaliste avec juste l'affichage d'un rectangle.


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

Le 09/02/2011 à 14h51
Jipe :
j'ai décortiqué un morceau étrange F3E8 n'est pas un registre de VDP mais l'info trigger (...)




Je sais vraiment pas comment interpréter tes infos... :gne



Y a du code qui se retrouve en RAM à la place de variables système ?



J'utilise les adresses F3DFh à F3E8h pour récupérer la valeur des registres VDP 0 à 9 avant de les modifier.

Et a chaque modification d'une valeur d'un de ces registres, je sauvegarde la valeur dans les variables systèmes correspondantes.



Est-ce une erreur de considérer qu'au démarrage, les adresses F3DFh à F3E8h contiennent bien les valeurs des registres VDP !? :hum


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 09/02/2011 à 14h59
F3E8h n'est pas le registre 9 mais l'info trigger flag utilisé pour les boutons du joystick
les variablessystéme des registresdu VDP vont de F3DFh registre 0 a F3E7h registre 8


:noel
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2904

Le 09/02/2011 à 15h14
Ha oui, ça pourrait expliquer le plantage !
Je teste ça ce soir, merci. :top


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