MSX Village forum

La Place des Développeurs ROM 48K et slots

aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2907

Le 28/12/2021 à 15h50

Reprise du message précédent

La première fonction à l'air OK... en dehors du fait que tu dépends des fonctions du BIOS et de sa zone de travail en RAM. Côté BIOS y a peu de risques que ça ne fonctionne pas comme prévu. Côté RAM, tu es sûr de pas écraser la zone de travail du BIOS ?
Tu devais déjà valider la valeur de ta première fonction avec un programme qui la print. Essai-le sur les différents émulateurs et sur différentes configurations : slot primaire 1, slot primaire 2, slot étendu, etc.
Si tu valides que la valeur est toujours bonne, le problème vient de ta 2e fonction (ou d'ailleurs).


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

Le 28/12/2021 à 15h53
Ah... trop tard ^^

Il n'empêche ; vu ton soucis avec BlueMSX tu devrais d'abord valider ta fonction qui récupère le slotId de la cartouche.


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

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 12/05/2018 à 23h00

Messages: 561

Le 28/12/2021 à 17h22
Quand tu lances openMSX directement, tu n'as pas la même config qu'avec Catapult.

cbios est à éviter!


DONALD TRUMP IS FAST APPROACHING
NEMESIS ! RETURN IMMEDIATELY !
   
Ricco59 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 02/01/2021 à 11h22

Messages: 248

Le 28/12/2021 à 23h47
Merci pour l'info Sector28

:)


Tous mes travaux sont centralisés sur mon piti blog : https://ricco59.blogspot.com/
E-mail    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 16/01/2022 à 08h51
Salut,

Je me dois de rendre homage à Aoineko, pour le travail qu'il fait sur sa librairie MSX. C'est vraiment dingue le boulot accompli.
Tu es vraiment très fort. J'ai beaucoup de mal à m'y retrouver dans ton code, mais c'est parce que je ne suis pas un bon codeur !
Mais tout y est, c'est du grand art.
Si tu avais entrepris ce travail il y a 3 ans, je ne me serai pas lancé dans FUSION-C :lol
En tout cas BRAVO. Tu es un chef ! :)

J'ai une petite demande en par contre.
Est-ce que tu peux fournir les sources de tes outils CMSXimg, CMSXmath etc... ?
Pour peut que tes sources soient en C++ je pourrai les compiler pour Mac ;)

Merci pour tout.


banniere-ericb59e
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2907

Le 16/01/2022 à 10h26
Merci :)

Tous mes outils sont dispo sur GitHub :
- https://github.com/aoineko-fr/CMSXbin
- https://github.com/aoineko-fr/CMSXmath
- https://github.com/aoineko-fr/CMSXimg

A mon avis Fusion-C et MSXgl (le nouveau nom de ma lib ^^), ont chacune une bonne raison d'être : tout dépend des besoins.


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

Villageois

Rang

Avatar

Inscrit le : 22/02/2021 à 22h22

Messages: 355

Le 16/01/2022 à 13h23
Très intéressant ce post, merci.
Je comprends mieux pourquoi j'avais des problèmes lorsque j'écrivais certains jeux en 32ko sur les EPROMs.
Comme le jeu commence en 0x4000 et s'étend sur deux pages il faut écrire dans l'EPROM en commençant par le second block de 16ko puis le premier.
Avec l'effet miroir on se retrouve bien avec le jeu dans le bon ordre dans les page 1 et 2.
Un petit dessin que j'avais fait pour m'y retrouver avec le CS1, CS2 et CS12 :


Il faut cultiver notre jardin.
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 16/01/2022 à 19h12
@Gfx. Oui quand on veut flasher une ROM 32K dans une EPROM 27C512, il faut d'abord splitter la ROM en 2 bloques de 16K, puis les concatèner en commençant par le second bloque.

@aoineko
Merci... J'avais pas vu...
Citation :
https://github.com/aoineko-fr/CMSXimg

Déjà celui-là c'est pas possible dû aux librairies externes que tu utilises.


banniere-ericb59e
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2907

Le 16/01/2022 à 20h06
Ah... il manque CMSXtk ! J'ai commencé à y déplacer des bouts de code en commun.
Il faudrait que je fasse un repo commun avec tous les outils.
Je ferai ça quand j'aurai un moment et je te préviendrais.

Et pour info, je vais pas mal modifier les crt0 des Plain ROM (8~64K) pour permettre de gérer toutes les combinaisons (il m'en manque encore) sans avoir à ajouter encore plus de crt0.


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 17/01/2022 à 20h14
@aoineko Est-ce que tu as testé une ROM 48K sur un MSX16K doté d'une extension RAM ?
J'ai un bug, pour trouver dans quel slot est la RAM...
Tu utilises quoi comme routine pour identifier la MAIN RAM ?


banniere-ericb59e
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2907

Le 18/01/2022 à 09h24
Je laisse le système trouvé la RAM pour moi.
D'après les BIOS que j'ai essayé de décortiquer, au démarrage le système :
- Sélectionne le slot 0 (ou le sous-slot 0-0) sur toutes les pages (là ou se trouve le BIOS),
- Puis recherche lui-même le premier slot/sous-slot ou se trouve de la RAM et le sélectionne dans la page 3,
- Puis recherche les entête de ROM "AB" en début de page 1 et 2.

Du coup, au démarrage de ta ROM, le slot de la RAM, c'est le slot sélectionné dans la page 3.
Sur MSX1, tu es sûr d'avoir au moins 8K de RAM à partir de E000h et sur MSX2, tu es sûr d'avoir 64K de RAM sur ce slot (dont les 16K de la page 3 sélectionnés).

Personnellement, je ne vais pas plus loin.

Vu le code que le BIOS utilise pour trouver la RAM (tentative d'écriture "brut force"), j'imagine qu'il trouvera une extension de RAM si elle est directement accessible dans un slot/sous-slot avant celui de la RAM principal.
Par contre, si c'est une RAM mappé qui passe par des I/O pour être sélectionné, ça sera certainement invisible pour la détection du BIOS (au moins sur MSX1).


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