MSX Village forum

L'école mirrored rom

MSXlegend Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 18/06/2010 à 22h42

Messages: 5661

Le 22/08/2023 à 17h19
mais qu'est ce que c est que ce charabia !!

ça fait un moment que je vois certains jeux (des petits de 16-32k en generals) m'afficher sur bluemsx un mapper "mirrored rom"

Le peu d'info que j'ai eu sur la toile, c est que la rom demarre a 0000h au lieu de 4000h habituellement
Quand j'ai testé le jeu 16k version beamrider, idem, il démarre à 0000h.

Quelqu'un a plus d'info dessus? merci Edité par MSXlegend Le 22/08/2023 à 17h20


Createur du KCX Bluetooth emitter au format cartouche compatible stereo moonsound
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10248

Le 22/08/2023 à 17h31
mirrored rom avec BlueMSX ça veux dire tout simplement que c'est un jeu en cartouche 8K 16K 32K 48K ou 64K qui n'utilise pas de mapper spécifique mais juste les Signaux Slot Select , CS1 , CS2 et CS12 pour démarrer la cartouche

essaye avec Knigtmare il ne démarre pas en 0000h mais en 4000h et pourtant sur détection automatique il affiche bien mirrored rom


:noel
Site web    
MSXlegend Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 18/06/2010 à 22h42

Messages: 5661

Le 22/08/2023 à 17h36
Je comprend mieux. et si une rom de 64ko m'affiche un mapper ascii16, il ne fronctionnera donc pas dans une 27512 !!

donc mirrored rom = eprom 8k 16k 32k 48k 64k :)

Merci pour les precisions Edité par MSXlegend Le 22/08/2023 à 17h42


Createur du KCX Bluetooth emitter au format cartouche compatible stereo moonsound
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 2206

Le 22/08/2023 à 17h45
Pour moi une rom mirrored c'était par exemple une rom de 8k dont le contenu était copié 2 fois à la suite pour faire une rom de 16k... :fou


Clé de sol

Site web    
MSXlegend Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 18/06/2010 à 22h42

Messages: 5661

Le 22/08/2023 à 18h00
eh eh , pas mieux .

"Say no to drugs" :lol


Createur du KCX Bluetooth emitter au format cartouche compatible stereo moonsound
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5464

Le 22/08/2023 à 20h00
Si je ne dit pas de bêtise. Une Mirrored ROM c'est une ROM de 8, 16, 32k,
dont le contenu est visible aussi sur un autre slot que celui dans lequel se trouve la cartouche.
C'est une conséquence du système de slots/subslot du MSX.

Cela dit, il me semble aussi que les Megarom, donc les ROM avec un Mapper, peuvent aussi avoir des pages miroir dans d'autres slots. Mais c'est une autre question.

Edité par ericb59 Le 22/08/2023 à 20h00


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10248

Le 22/08/2023 à 20h08
en fait c'est BlueMSX qui les appellent ainsi :|

si on charge un jeu en rom de 8K il est bien en miroir dans la mémoire

j'explique : le jeu va de 4000h à 5FFFh

comme le signal employé est CS1 la zone adressée par le MSX va de 4000h à 7FFFh

donc on retrouve bien un reflet du jeu en 6000h


:noel
Site web    
MSXlegend Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 18/06/2010 à 22h42

Messages: 5661

Le 22/08/2023 à 20h37
moi je t ai perdu apres ....le jeu va de 4000h...... :sick
(j'ai compris le principal c est deja ça :lol ) Edité par MSXlegend Le 22/08/2023 à 20h38


Createur du KCX Bluetooth emitter au format cartouche compatible stereo moonsound
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2654

Le 22/08/2023 à 22h01
Une mirrored ROM c'est un ROM dont certains bits d'accès aux données ne sont pas utilisés et ou tu as donc plusieurs adresses qui pointent vers le même contenu.
D'où l'effet miroir, comme si le contenu pouvait être vu à différent endroit de l'espace mémoire du slot de la ROM.

Par ex., avec une ROM de 16 KB qui ignore les 2 derniers bits d'adressage (bit#14 et bit#15) les adresses suivantes pointent vers la même contenu de la ROM :
- 0100h
- 4100h
- 8100h
- C100h
(c'est comme si on appliquait le masque 3FFFh sur toutes les adresses)

Par contre, attention, si les données sont bien visibles depuis plusieurs endroits de l'espace mémoire, un programme lui est fait pour fonctionner à des adresses données qui sont inscrites en dur dans le code (à chaque [call] ou jump par exemple).

Du coup, une mirrored ROM de 16 KB qui est prévu pour tourner à partir de 4000h (cas classique) sera bien visible en 0000h, 8000h et C000h, mais les adresses du programme seront faites pour fonctionner entre les adresses 4000h et 7FFFh.

Les mirrored ROM sont le seul moyen de faire un programme qui est prévu pour être lancé à partir de 0000h car le BIOS du MSX ne va pas chercher l'entête des ROM en 0000h (seulement 4000h et 8000h) mais avec l'effet miroir il va trouver l'entête en 4000h et faire un saut au début du programme qui se trouvera dans les adresses 0000h.

A noter enfin, qu'une ROM simple (plain ROM en anglais) n'est pas forcement mirrored.
Tout dépend de l’électronique de la cartouche.
Dans le cas d'une ROM 16 KB (en 4000h par ex.) non mirrored, un accès au reste de l'espace mémoire du slot donnera un résultat indéterminé (Jipe expliquera mieux que moi, mais je crois qu'on obtient FFh dans le meilleur des cas). Edité par aoineko Le 23/08/2023 à 14h24


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

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 956

Le 24/08/2023 à 12h20
aoineko :
A noter enfin, qu'une ROM simple (plain ROM en anglais) n'est pas forcement mirrored.
Tout dépend de l’électronique de la cartouche.


Comprendre tout le décodage qui va piloter les broches /CE /CS (c'est la même choses c'est juste le nomage qui change ;) "CHIP ENABLE BAR" ou "CHIP SELECT BAR" ) et/ou /OE (OUTPUT ENABLE BAR)
Le "/" ou "BAR" c'est pour signaler que le signal est actif à l'état- bas ou "0" (logique négative).


aoineko :
Dans le cas d'une ROM 16 KB (en 4000h par ex.) non mirrored, un accès au reste de l'espace mémoire du slot donnera un résultat indéterminé (Jipe expliquera mieux que moi, mais je crois qu'on obtient FFh dans le meilleur des cas).


Si il y a un réseau de résistances relié au +5V sur le bus de données le Z80 va effectivement "voir" FFh. Parce que si /OE n'est pas au niveau "0" alors la ROM dans notre cas est dans un état dit "troisième état ("third start") qui en réalité est plutôt un état haute impédance ("Hi-Z").
Dit autrement la ROM ne pilote ni à l'état bas "0", ni à l'état haut "1", d'ou cette notion de 3ème état ("Third state").

Dans ce cas le rôle du réseau de résistances, va avoir pour rôle de "tirer" les signaux vers le +5V alias l'état "1".
Ainsi on évite que le bus soit flottant et que l'état des bits soit indéterminé.

Voilà c'était un peu long mais comme souvent en technique il faut expliquer un minimum pour comprendre ce qu'il se passe.



TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours) :top
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,... :\'(
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10248

Le 24/08/2023 à 13h34
petite précision sur l'électronique : les signaux /CS1 /CS2 et /CS12 sont couplés avec le signal /RD ce qui dire qu'il ne peuvent servir qu'avec une ROM

Extrait de la Doc du Canon V20

fi_iii-6

cs

Traduction :
Sélection des signaux de la ROM
Outre les signaux de sélection d'emplacement, il est stipulé que le signal de sélection de rom répertorié ci-dessous soit émis vers l'emplacement de cartouche. Par conséquent, ces signaux sont produits en U2, U47 et U16 en utilisant les bits de poids fort du bus d'adresse et le signal /RD (voir figure III.6).
Lorsque la cartouche ROM d'adresse 4000-BFFF est utilisée, l'avantage est que le coût de la cartouche elle-même peut être réduit puisque le circuit décodeur d'adresse est situé dans l'unité principale.


:noel
Site web    
MSXlegend Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 18/06/2010 à 22h42

Messages: 5661

Le 24/08/2023 à 21h48
Je pense qu'une fois que l'on maitrise ça, on maitrise le reste :lol

Je me penche sur tout ça car je trouve cela vraiment intérréssant :top

Merci


Createur du KCX Bluetooth emitter au format cartouche compatible stereo moonsound
z80 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 17/05/2013 à 22h52

Messages: 956

Le 26/08/2023 à 12h29
REMARQUE:

Ça ne change rien sur le fonctionnement attendu, MAIS d'un point de vue de logique pure, la manière dont sont connecté les signaux /CE et /OE de la ROM du CANON V20 sont "à l'envers" :fou

En effet les signaux /CSxx sont le fruit du signal /RD et du décodage des A14 et A15 pour obtenir des signaux /RD par page de 16KO.
D’ailleurs CANON créé un signal équivalent à un /CS01 qui couvre les pages 0000h-3FFFh (/CS0) et 4000h-7FFFh (/CS1).

Hors CANON à décidé de câbler le signal /SLTSL0 sur la broche /OE de la ROM et /CS01 sur la broche /CE.

Encore une fois fonctionnellement parlant ça marche, mais d'un point de vue logique il faudrait /SLTSL0 sur /CE et /CS01 sur /OE, et ça serait vérifié sur une SRAM qu'on utiliserait à la place de la ROM dans une cartouche par exemple. Edité par z80 Le 26/08/2023 à 12h31


TurboR GT (1Mo), CANON V20! ( en kit, modif 2+ en cours) :top
Pas encore retrouvés: V9990, Grafx9000, SUNRISE IDE 2x CF, SUNRISE MOONSOUND, FM PAC, MUSIC MODULE, NMS8280, SD SNATCHER,... :\'(
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie