MSX Village forum

La Place des Développeurs [EN COURS] COLOR 1 => COLOR 0 Remplacer la couleur [UN] par la Couleur [ZERO] sur R-Type.

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 18/01/2013 à 18h46
Bonsoir à tous.

Dans mon périple sur la SuperImpose, je suis confronté à un problème.

Je voudrais savoir si il est possible de Remplacer dans une Méga-Rom comme R-TYPE, toutes les couleurs [UN] par la couleur [ZERO]?

Voici la Rom (La version trainer ;) )=> http://www.msxblue.com/?p=893&lang=fr

Le fin du fin serait de remplacer seulement la couleur du FOND qui est en COLOR [UN], mais dans l'absolu, la totalité du jeu ne gène pas trop.

D'autre part, j'ai fait un tout petit chargeur en Basic en cueillant par ci par là, des infos sur la toile.

J'ai repris le principe de Ricardo ouazem qui lance le mode SuperImpose très simplement.

Code TEXT :
10 OUT (149),0
20 COLOR 0,0,0
30 VDP(10)=16
40 '----------------------
50 SCREEN8
60 OUT (149),&H1F
70 BLOAD"megaman.SR8",S
80 '----------------------
90 OUT(149),&HF
100 COLOR 15,0,0
110 SCREEN8
120 BLOAD"MSXRIO.SR8",S
130 OUT(149),&H1F
140 FOR A=0 TO 255 STEP ?????? (impossible de voir le chiffre)
150 SET SCROOL A,0
160 NEXT
170 GOTO 140
 


J'ai retenu ceci:
0 SCREEN2 :' Met le msx en Screen 2 (VDP)
10 OUT (149),0:' Ouvre le Port 149 (SuperImpose) et l'affiche sur l'écran 0
20 COLOR 0,0,0:' bascule en transparence le Texte, l'écran et les Bords du MSX (VDP)
30 VDP(10)=0:'Bascule en 60Hz
40 DEF USR=&H7C75: A=USR(0):'Lance la rom présente sur le Slot 1

J'attends vos remarques. N'hésitez pas :p Edité par igal Le 19/01/2013 à 17h50


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 18/01/2013 à 19h04
le port 149 -> 95H n'existe pas dans les MSX

voici un extrait de la liste des ports

8E-8F NC Reserved
90 R ULA5RA087 Centronic BUSY state (bit 1=1)
90 W ULA5RA087 Centronic STROBE output (bit 0=0)
91 W ULA5RA087 Centronic Printer Data
92-97 NC Reserved
98 R/W 9918,9929,9938,9958,9978 VRAM Data Read/Write
99 R 9918,9929,9938,9958,9978 VDP Status Registers
99 W 2nd Byte b7=0: 99X8 VRAM Address setup
99 W 2nd Byte b7=1: 99X8 VDP Register write
9A W MVDP (MSX2) 9938,9958 Color Palette Register (2 bytes)
9B W MVDP (MSX2) 9938,9958 Register data
9C-9F NC Reserved

ce port 95H reservé a été utilisé par Ricardo pour changer de VDP actif et non pas pour la superimpose

remplacer la couleur 1 par la 0 demande certainement un immense travail au niveau d'une mégarom
il faut d'abord rechercher ou sont les écrans du graphisme dans le jeu et aprés les tables des couleurs

l'émulateur meisei peut donner un bon coup de main pour les jeux MSX1 avec sa fonction de voir les tiles et les sprites en temps réel



:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 18/01/2013 à 19h31
Autant pour moi Jipe.

En regardant de plus près, je m’aperçois qu'il affiche la superimpose avec:

VDP(10)=16 et COLOR 0,0,0 pour rendre l'écran au dessus.

Cela se résume donc à:
10 VDP(10)=16
20 COLOR 0,0,0
30 DEF USR=&H7C75: A=USR(0

Pour la Rom je pensai qu'il suffisait de chercher l'équivalent de => "SCREEN2: COLOR1,x,x" en assembleur à l'aide d'un éditeur hexadécimal :fou Edité par igal Le 18/01/2013 à 21h32


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

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 19/01/2013 à 09h27
igal :
Pour la Rom je pensai qu'il suffisait de chercher l'équivalent de => "SCREEN2: COLOR1,x,x" en assembleur à l'aide d'un éditeur hexadécimal :fou


Ce n'est pas si simple ! ... R-Type est en Screen 2, et donc les couleurs à l'écran sont définies dans la table de couleurs des patterns en VRAM (elle fait 768 octets). Donc il faut trouver où est stockée cette table dans la ROM (peut-être en cherchant la routine qui la charge en VRAM). Le problème est qu'il y en a peut être plusieurs, en fonction des niveaux ...


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

Le 19/01/2013 à 12h44
sur un 8280 VDP(10) =16 passe l'écran en 60Hz mais on ne vois rien changer coté superimpose

si on prend le fonctionnement du registre 9 qui correspond au VDP(10)

on vois que VDP(10)=16 ( 10000en binaire ) passe S0 a 1 = digititalisation , incrustation

il faudrait faire le test sur unHB900


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 19/01/2013 à 14h19
Salut Jipe: Je m'étais fait avoir moi aussi.

Il faut rendre invisible l'écran MSX qui est par dessus en faisant:
COLOR 0,0,0
A partir de là, tu vois apparaître le film en dessous.
Dis moi si jamais ça marche pas chez toi! Je l'ai fait que sur BlueMSX avec la configuration 8280 upgradé en 2+ de Mars2000 ;)


Par contre, je voudrais être sur de comprendre une chose:

0 = computer normal mode
1 = computer digitize mode
2 = superimpose
3 = only video

SET VIDEO 0 => Mode Msx Normal
SET MODE 1 => Permet de digitaliser
SET MODE 2 => Superimpose
SET MODE 3 => Seulement la Vidéo

Autant il est simple de comprendre les Mode 0 et 3:
Respectivement, Juste le MSX et Juste la Vidéo.

Autant j'ai du mal à comprendre les modes 1 et 2. :moue

Le Mode 1 met la VIDEO par dessus la VDP?

Je suis certain que le Mode 2 met la VIDEO par dessous le VDP! (Peut être est ce possible d'inverser les deux couches???) Edité par igal Le 19/01/2013 à 14h20


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 19/01/2013 à 14h30
le MODE 0 permet de voir uniquement l'image du VDP

le MODE 1 la digitalisation transforme une image provenant d'une source externe en image SCREEN8 logée dans la mémoire du VDP

le MODE 2 la superimposition permet de superposer l'image venant d'une sourceexterne avec l'image du VDP , ça marche dans tous les modes

le MODE 3 permet de voir uniquement l'image provenant d'une source externe

le MODE 1 met l'image dans la mémoire du VDP , donc pas d'autre image possible comme tu le pense

le MODE 2 permet des effets de transparence ou mixage suivant les couleurs et pas seulement 2 couches distinctes

je ne pense pas qu'il soit possible de changer l'ordre des couches


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