raphnet.net banner

RetroChallengeRetry, 2020/04

twitter@raphnetlabs
Buy Me a Coffee at ko-fi.com
Contenu

Sommaire: M'amuser avec un ordinateur MSX

Vers la fin du mois de Mars 2020, lors d'une de mes visites périodiques à un magasin Hard Off (une chaîne japonaise vendant, entre-autre, du matériel électronique usagé), je suis tombé par hasard sur un ordinateur MSX fabriqué par Sony, modèle HB-10. Il n'était pas testé, mais il était physiquement en bon était et le prix semblait raisonnable alors j'ai décidé de l'acheter.

L'ordinateur Sony HB-10 que j'ai acheté

L'ordinateur Sony HB-10 que j'ai acheté



Je ne connais strictement rien aux ordinateurs MSX. C'était très peu commun il me semble là où j'ai grandi au Canada. Je soupçonne que ce type d'ordinateur a connu beaucoup plus de succés au Japon et en Europe... Quoi qu'il en soit, je suis curieux et le Retro Challenge Retry est la parfaite occasion pour passer du temps à faire fonctionner cet ordinateur Sony HB-10 et à me familiariser avec l'écosystème MSX.

Une fois que mon MSX sera fonctionnel (sans trop de difficultés j'espère) mon premier objectif sera de jouer à un certain jeu qu'un développeur que je suis sur Twitter (@reidrac) a récemment terminé de créer. Ce nouveau jeu MSX qui semble vraiment très bien est nommé Uchūsen Gamma. Voici quelques screenshots:


goto top


Petite inspection visuelle

Il ne manque aucune touche au clavier. Restera à faire un bon nettoyage plus tard.



Il y avait de légères traces d'oxydation sur les connecteurs, en particulier sur la sortie RF.



Mais sinon l'intérieur était en parfait état, sauf un peu de poussière.


goto top


Alimenter la bête!

L'ordinateur était vendu sans câbles et sans bloc d'alimentation. L'absence de bloc d'alimentation était d'ailleur l'excuse du magain pour ne pas avoir testé cet item. J'allais donc devoir me débrouiller pour l'alimenter.

Selon l'étiquette du dessous, il faudrait fournir 6V DC et 16V AC...


Je n'avais rien sous la main pour fournir ces tensions alors je me suis demandé, cette machine fonctionne surement avec 5v DC à l'interne... Puis-je simplement injecter 5v DC? Pourquoi la machine demande-t-elle une alimentation 16v AC? Quel usage en fait-elle?

Pour répondre à ces questions, j'ai consulté le manuel de service d'un modèle similaire qui était disponible sur Archive.org. Ce manuel n'est pas exactement le bon, j'ai la version japonaise HB-10 alors que ce manuel est pour les modèles HB-10P (Europe) et HB-10B (Angleterre). Mais selon cette page concernant la série HB-10 du Wiki MSX, les différences seraient surtout au niveau du clavier et des connecteurs Audio/Vidéo.

(https://archive.org/details/sonyhb10p10bsm/mode/2up)

Alors, voici à quoi servent ces alimentations:

Je n'ai trouvé aucun endroit sur la carte mère où les alimentations 12 et -12v sont utilisés. Je prévois me servir du port de casstte, mais il sera branché à la sortie audio d'un PC. Je n'utiliserai pas le 12v. Je ne possède pas encore de cartouches, mais je soupçonne que la plupart fonctionnent avec 5v seulement.

Conclusion: Pour le moment, je peux me contenter d'injecter 5v, car je n'utiliserai pas les tensions +12,-12, et l'alimentation 6V brute (avant d'être abaissée à 5v) ne sert pas. Je ferai peut-être mieux plus tard, mais pour l'instant, j'ai simplement soudé un câble USB à la sortie du régulateur...



J'ai raccordé l'ordinateur à un écran PVM de Sony (très approprié, même marque que le PC) et j'ai branché le câble USB... Et l'ordinateur semble fonctionner à merveille!



Toutes les touches du clavier fonctionnent bien! Je me suis amusé à coder un petit programme Hello, World! en BASIC.



J'ai eu de la chance, l'ordinateur ne semble pas avoir besoin de réparations! Je suis un peu déçu, un petit déboggage de carte mère, un remplacement de CPU ou de mémoire (pièces qui sont soudées) aurait été un petit défi amusant à relever, mais bon...

Prochaine étape: Charger le jeu Uchūsen Gamma!

goto top


Uchūsen Gamma

Uchūsen Gamma est distribué sous forme de fichier ROM (cartouche) et fichier CAS (cassette). Mon plan était de charger le jeu par le port de cassette de l'ordinateur en le raccordant à la carte de son de mon PC. Pour cela, il me fallait un câble! Comme je n'avais le bon type de connecteur DIN sous la main, j'ai simplement utilisé des fils. Les pièces pour faire un câble plus propre sont en commande...

Connecteur audio et fils

Connecteur audio et fils

Fils dans le connecteur DIN

Fils dans le connecteur DIN



Pour transformer le fichier .CAS en son, j'ai utilisé le projet MSX CAS Packager qui permet d'obtenir un fichier .WAV.



J'ai passé le fichier .WAV à VLC, tapé load"cas:",r sur le MSX et appuyé sur PLAY dans VLC. Quelques secondes plus tard, les mots "Found:ugamma" sont apparus à l'écran. Très bon signe!



Mais il était trop tôt pour crier victoire. Car peu de temps après....



Mais je croyais que Uchūsen Gamma était un jeu pour MSX avec 16k de RAM.. J'avais mal lu la page du jeu. La version cassette demande 64k... C'est logique, car après tout, s'il n'est pas en ROM, le code du jeu doit être chargé en mémoire...

Bon, alors mon modèle de MSX n'a que 16k de mémoire. Dans la série HB-10, seul le modèle japonais (le mien) a 16k de mémore. Tous les autres modèles ont 64k. Vraiment pas de chance... Il n'y a qu'une chose à faire: Ajouter de la mémoire et réessayer!

goto top


Extension de mémoire

Selon les informations disponibles sur le wiki MSX concernant la série HB-10, le modèle HB-10 comporte 16k de mémoire dans la SLOT 0 alors que tous les autres modèles (HB-10P, HB-10B, HB-10D) auraient 64k dans la SLOT 3.

Je vais tenter deux approches pour augmenter la mémoire de mon HB-10.

  1. Fabriquer une cartouche de mémoire. Il suffira de l'insérer dans une des deux fentes pour ajouter 64k de mémoire vive au système.
  2. Modifier la carte mère pour avoir 64k de mémoire.
Les pièces pour les deux approches sont déjà en commande et arriveront vers la fin du mois.

J'ai bon espoir pour la modification de la carte mère. En ce moment, deux puces TMS4416 (IC10 et IC11) sont installées. On remarque tout de suite les inscriptions sur le circuit imprimé 4416(N) et 4464(P). Je pense que N est pour NTSC et P pour PAL. Dans le contexte du HB-10, sachant qu'il a été vendu au Japon et en Europe, NTSC = Japon, PAL = Europe, et qui dit Europe dit 64k! Le plan est donc de remplacer les deux TMS4416 par des TMS4464 et faire les autres modifications qui s'imposeront. Par exemple, en regardant la carte, je peux voir d'autres composants optionnels identifiés par (N) et (P), notammant R61 et C43.



Je n'ai pas le manuel de service Japonais, mais j'ai celui de la version européenne qui provient de archive.org. Le schéma du circuit de mémoire me sera surement très utile pour comprendre les modifications!



goto top


Câble de cassette

La pièce qui me manquait pour fabriquer un câble de cassette, un connecteur DIN à 8 broches, est arrivée!

Les composants

Les composants

Câblage

Câblage

Câblage

Câblage

Et voilà!

Et voilà!



Câble branché

Câble branché


goto top


BASIC 10-liners et KansasEncoder

En attendant les pièces pour augmenter la mémoire de mon MSX, j'ai eu l'idée d'essayer des jeux du concours annuel de programmation BASIC en 10 lignes (Basic 10 liner contest). Pour ne pas avoir à les taper, je les charge par le port de cassette!

Pour convertir le programme en son, j'utilise un petit outil tout à fait génial qui tourne à même un navigateur web: KansasEncoder for MSX. Il suffit de copier-coller le texte du programme dans la boîte et d'appuyer sur Play après avoir tapé Load"cas:" sur le MSX!

À titre d'exemple, voici un jeu que j'ai beaucoup apprécié dans le concours 2019 (Il a remporté la huitième place)
Ballistic Challenge!

Je récupère d'abord le code...
Le code de Ballistic Challenge sur github

Le code de Ballistic Challenge sur github



Je le recopie dans KansasEncoder...
Le code dans KansasEncoder

Le code dans KansasEncoder



Je tape load"cas:" sur le MSX, j'appuie sur Play dans KansasEncoder, et quelques instants plus tard...


Et hop! Le jeu tourne sur mon MSX!




Voici un autre jeu vraiment pas mal pour seulement 10 lignes, SuperFish! (Celui-ci a remporté la quatrième place du concours)

Le jeu dans KansasEncoder..

Le jeu dans KansasEncoder..

Et il tourne sur mon MSX!

Et il tourne sur mon MSX!


goto top


Cartouche mémoire 64KB

J'ai finalement reçu les pièces pour me fabriquer une cartouche permettant d'ajouter 64 kilo-octets à ma machine MSX qui n'en a que 16. J'ai conçu un petit circuit imprimé utilisant une puce SRAM de 128KB. La raison pour l'emploi d'une puce SRAM du double de la taille requise est que je voulais utiliser des pièces neuvent, et malheureusement le choix est limité de nos jours...


Schéma

Alors bon, voici d'abord le schéma:



Lors de la conception, j'ai fait mon possible pour suivre les conseils disponibles sur le Wiki MSX à https://www.msx.org/wiki/Hardware_Design, du moins ceux qui me semblaient applicables à ma situation. En particulier, je me suis assuré d'utiliser une SRAM compatible TTL et pour faciliter des modifications et expériences futures, j'ai bien exposé tous les signaux du connecteur de cartouche.


Circuit imprimé

Le circuit imprimé est aux dimensions des circuits de type Konami.

Circuit imprimé

Circuit imprimé

Assemblé et installé

Assemblé et installé




Test 1

Le premier test que j'ai fait était de vérifier si BASIC voyait la mémoire supplémentaire. Et oui, la mémoire libre passe de 12431 octets à 28815 octets!

Avant...

Avant...

Carte insérée...

Carte insérée...

Et après!

Et après!



Seulement 28815 alors que je viens d'ajouter une cartouche de 64kB? C'est normal. L'unité centrale peut accéder un espace de 64k, et 32k sont d'entrée de jeu occupés par le ROM qui contient le code du BIOS et BASIC. Comme BASIC utilise un peu de mémoire RAM également, des 32768 octets de mémoire ne restent que 28815 octets.

Voir le Wiki MSX: I have 64kB of memory, but BASIC only reports 28xxx Bytes free



Test 2

BASIC ne touchant qu'à 32kB de mémoire, j'ai eu recours à un autre outil conçu pour examiner le contenu des différentes "slots" dans le système. Il s'agit de TINY SLOT CHECKER par Tiny-yarou. http://www.tiny-yarou.com/slotchecker.html

Le .zip de cet outil contient plusieurs version de l'outil, dont une version cassette au format .WAV bien pratique pour moi. Suffit d'utiliser VLC et le câble de cassette que j'ai fabriqué.

Test avec Tiny Slot Checker

Test avec Tiny Slot Checker



On voit ci-dessus que Tiny Slot Checker détecte de la mémoire dans slot 1 (fente pour cartouche de gauche), et c'est bien là où j'ai inséré mon extension de mémoire. La page 3 de slot 0 est la mémoire vive interne, et c'est de là que l'outil s'exécute. La version mémoire vive (contrairement à la version cartouche) de Tiny Slot Checker ne peut pas inspecter la page 3, ce qui explique les cases vides...


Test 3

J'aurais aimé faire un test avec un outil spécialement conçu pour tester la mémoire vive, mais je n'ai pas trouvé un tel outil en format cassette... alors il ne restait qu'un chose à faire: Réessayer de jouer à Uchūsen Gamma! Cette fois avec 64k de mémoire, il ne devrait pas y avoir de problèmes!

Eh oui, après quelques instants, plutôt qu'un message comme quoi il n'y a pas assez de mémoire, un écran de chargement est apparu! Et environ 5 minutes plus tard, le jeu était lancé!

Écran de chargement

Écran de chargement

Enfin le jeu!

Enfin le jeu!

Enfin le jeu!

Enfin le jeu!



J'espère bientôt (les pièces sont commandées) pouvoir remplacer ma cartouche d'expansion de mémoire par une modification internel de la machine qui consistera à remplacer les deux puces 4416 par une paire de puces 4464 (plus quelques modifications qui s'imposent). Comme ce sera amusant!

Mais en attendant, je vais jouer à quelques jeux et peut-être faire un adaptateur de joystick...

À suivre...

goto top


Les marques de commerce utilisées dans ce site appartiennent à leurs propriétaires respectifs.
Copyright © 2002-2020, Raphaël Assenat
Site codé avecSite codé avec vimDernière mise à jour: 1 mai 2020 (Vendredi)