MSX Village forum

La Place des Développeurs MSX2 Screen5 test Test en assembleur du VDP en mode SCREEN5

6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 17/07/2018 à 16h29
Salut, les gars,

Après le mode SCREEN 8 je m'intéresse maintenant au mode SCREEN 5 => 256x212 avec un palette de 15 couleurs parmis 512.

Pour continuer dans les tests des commandes internes aux VDP cette fois en SCREEN 5 avec la gestion de la transparence.
Aucun sprite utilisée.


1) transfert des données graphique en page 2 et 3 par une classique boucle OUT(VDP) ...

2) utilisation de la commande HMMM ( copy VRAM to VRAM ) pour afficher le décor sur la page 0 (visible)

3) utilisation de la commande LMMM ( logical move VRAM to VRAM ) pour afficher le personnage sur la page 0 en utilisant l'opérande Timp (transparence)

4) attend que l'on utilise le joystick vers la droite ou gauche (pour déplacer le personnage)

5) utilisation de la commande HMMM ( copy VRAM to VRAM ) pour ré-afficher la portion du décor ou le personnage était avant un déplacement sur la page 0
(efface le personnage).

6) on revient au 3 ...


le personnage ce déplace avec une petite animation, bon c'est un peu saccadé mais le but est de tester la rapidité d'une gestion de sprite "non hardware" mais par les commandes du VDP.

l'avantage c'est que l'on est pas limité à une couleur par ligne de sprite mais on peu utiliser des sprites de 16 couleurs sans contraintes ;=)

Si vous voulez tester voici la ROM de test :
Riki.zip


Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 17/07/2018 à 17h26
un peu déçu car il faut un joystick pour bouger le personnage :oups
ça m'apprendras a vouloir tester sur un émulateur :|

sinon j'ai dessassemblé et je remarque que ton en-tête n'est pas vraiment aux normes des cartouches MSX
généralement les programmes démarrent en 4010H car les premiers octets sont reservés pour des extensions

The first 16 bytes of each Cartridge or Expansion ROM are used as header. In most cases (ie. in game cartridges) only the first two entries are used, and the remaing entries are set to zero.

Address Name Expl.
X000 ID Identification Code (4241h=ROM Cartridge, 4443h=SUBROM)
X002 INIT Start Address (could be anywhere 0000-BFFF)
X004 Statement Statement expansion routine address. For creating new
CALL statement (For example CALL MUSIC used in FM PAC)
X006 DEV For creating new devices (CAS:, MEM:, GRP:, etc...)
X008 TEXT Pointer to BASIC program in ROM, must be in 8000-BFFF.
X00A-F N/A Reserved (0)

Upon startup the BIOS scans all SLOTs for Cartridge ROMs (ID 4241h) at addresses 4000h and 8000h, and for SUBROMs (ID 4443h) at address 0000h.
Most Cartridge ROMs occupy the area from 4000h-BFFFh, but might be also using (or being mirrored to) the whole address space from 0000h to FFFFh.


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 17/07/2018 à 17h53
veux pas se lancer sur mon vrai MSX :(
faut dire que la courroie du lecteur est HS :siffle


:noel
Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 17/07/2018 à 18h03
Merci Jipe pour les infos sur l'entête des cartouches, je n'avais pas ces infos :(

Ca m'intéresse les tests sur un vrai MSX, de mon côté je ne pourrais rien tester en réel avant la fin aout :@



D'ailleurs j'ai essayé sous bluemsx de tester une cartouche ROM ayant les 2 premiers caractères différents de 4241h mais impossible de la "voir" comme si bluemsx ne la chargé pas ???

Mais sur machine réel il n'y aucun raison quelle ne soit pas visible en positionnant le PPI sur le SLOT adéquate !!!



Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 17/07/2018 à 18h52
réussi a voir l'anime en configurant blueMSX avec les touches du clavier sur le joystick 1
sur turbo-r et 8280 4mo pas réussi a démarrer avec un lanceur de rom
mon ST n'a plus de courroie ..... a suivre


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 17/07/2018 à 19h12
j'ai copié par une carte SD et lancé dans ma cartouche émulateur de rom
l'affichage est ok mais pas de déplacement avec le joystick
a suivre ....


:noel
Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 17/07/2018 à 19h14
Tu à essayé avec les flèches du clavier ?


Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 17/07/2018 à 20h00
oui et joystick sur port a et b , ça ne bouge pas d'un poil


:noel
Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 17/07/2018 à 20h12
C'est sur le Turbo R et ou le 8280 ?



Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 17/07/2018 à 20h13
Peut être que pour une cartouche il faut initialisé le PPI , il n'est peut être pas initialisé par le BOOT du BIOS ???


Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 17/07/2018 à 20h19
Essaye cette version :

Riki2.zip


Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 18/07/2018 à 11h25
dans les 2 versions il te manque un octet pour faire les 32k standard d'une cartouche
la seconde version fonctionne sur turbo-r ST 512k avec manette dans le port 1 mais pas avec le clavier
mais il faut que je la charge dans ma S-RAM pour la faire fonctionner


:noel
Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 18/07/2018 à 16h38
C'est normal pour le clavier car je ne scrute que le joystick ;)

Pour l'octet manquant oups, je rectifierais pour la prochaine versions ;)

Dèjà tu confirme que le comportement est le même sur machine réelle :)


Je vais faire des tests avec un personnage encore plus grand pour voir si VDP suit ....


Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 18/07/2018 à 17h02
Avec un plus grand personnage mais sans décor, avec la même technique mais la ca clignote énormément, il y aurait une solution c'est de temporiser à chaque boucle d'affichage, mais ca ralentirais énormément le personnage :(

Il y a déjà en fin d'affichage l'attente de la fin de page écran du VDP, mais peut être il y a moyen de trouver une meilleur technique ....

@Jipe: si tu à la possibilité de tester sur machine réelle pour vérifier que le comportement est identique à l'émulateur (clignotement) ?


IORI.zip


Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 18/07/2018 à 17h56
on obtiens bien le même résultat sur émulateur et vrai MSX



tu as un "décor" puisque tu passes devant le personnage qui est en fond arriére


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