MSX Village forum

L'école TUTO : openMSX en ligne de commande

ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5284

Le 05/05/2022 à 11h54
Utiliser openMSX sans Catapult.




Tout le monde connait openMSX, l’émulateur ultime pour les machines et extensions MSX.

Toute fois, il est assez particulier à utiliser car il est fourni sans interface utilisateur dédiée et sans les ROMs des machines qu’il est censé émuler.


L’interface utilisateur Catapult permet d’utiliser openMSX facilement pour des usages courant, mais pour tirer vraiment partie des possibilité de l’émulateur, il n’est pas suffisant. Il faut alors se tourner vers ce pourquoi il est excellent, à savoir son lancement en ligne de commande.



Je vais ici vous montrer comment je l’utilise. Ma méthode, n’est pas forcément lai meilleure, ou la façon de faire idéale, en tout cas c’est ce que j’ai trouvé de mieux pour l’usage que j’en ai, à savoir développer en C pour MSX, et lancer des ROMs ou des Disks pour tester des jeux.

Commençons par installer openMSX.


Mac et Windows, procédez comme ceci:
1- Télécharger la dernière version de openMSX pour pour Windows (Version zip) :
https://github.com/openMSX/openMSX/releases/download/RELEASE_17_0/openmsx-17.0-windows-vc-x64-bin.zip

2- Décompressez l’archive. Renommez le nouveau dossier « openMSX »

3- Dans le cadre de ce tutoriel, copiez le dossier « openMSX » sur votre bureau


4- Télécharger le dernier pack de ROMs : 
https://download.file-hunter.com/System%20ROMs/Full%20Set%20System%20ROM's%20(OpenMSX)%20-%2022-03-2022.zip

5- Décompressez l’archive et copiez les dossiers « extensions », « machines », et « misc » dans le dossier « openMSX/share/systemroms » (de votre bureau).

Si vous êtes sur Mac:
6- Téléchargez la version d’openMSX pour MacOS:
https://github.com/openMSX/openMSX/releases/download/RELEASE_17_0/openmsx-17.0-mac-x86_64-bin.dmg

7- Ouvrez l’archive et copiez le fichier « openMSX.app » dans le dossier « openMSX » que vous avez mis sur votre bureau

Lancer openMSX en ligne de commande.
Sur Windows, ou sur MacOS, le lancement d’openMSX par ligne de commande est le même.

Ouvrez le Shell / Dos, et placez vous dans le dossier openMSX

Windows:
Tapez: CD %HOMEPATH%\Desktop\openMSX
Tapez: openMSX.exe


MacOS:

Tapez: CD $HOME/Desktop/openMSX
Tapez: ./openMSX.app/Contents/MacOS/openmsx




Voilà, l’émulateur doit se lancer en mode CBIOS !
La première étape est accomplie.



Les paramètres en ligne de commande

Les paramètres principaux qui peuvent être utilisé en ligne de commande peuvent être listé en lançant openMSX avec l’argument -h
> openmsx.exe -h


Les principaux arguments sont:
-machine <nom de l’ordinateur à émuler>
-carta <chemin de la Rom à placer dans le slot A>
-cartb <chemin de la Rom à placer dans le slot B>
-diska <chemin de la Rom à placer dans le floppy A >
-diskb <chemin de la Rom à placer dans le floppy B >
-script <chemin d’un script TCL à utiliser>

Ainsi, si on tape:
Windows:
> openmsx.exe -machine Panasonic_FS-A1GT -carta %HOMEPATH%\Desktop\Games\galious.rom

MacOS:

> ./openMSX.app/Contents/MacOS/openmsx
-machine Panasonic_FS-A1GT -carta $HOME/Desktop/Games/galious.rom




On va lancer l’émulation du MSX Turbo-R Panasonic FSA1 GT avec la ROM du jeu Galious qui se trouve dans un dossier « Games » sur le bureau.

Les scripts TCL
Il est possible d’écrire des scripts TCL (TCL est un langage de programmation), qui vont influer sur l’émulateur, ou bien lancer une configuration spéciale de l’émulateur.

J’utilise les scripts pour paramétrer très exactement l’émulateur, avec les extensions MSX, les touches de raccourcis, et même l’affichage que je souhaite.

L’ensemble des commandes utilisables dans les scripts est expliquée ici : https://openmsx.org/manual/commands.html

Voici un script que j’utilise

Code TEXT :
 
# openMSX MACHINE DEFINITION 
# Script version 1.3
#
# by EricB59 -> 2022
#
# _______________________________________________________________________________________
# -- Machine Configuration  --
# _______________________________________________________________________________________
# -- System_rom Path (Enter full path)
#variable SYSTEM_ROM_PATH Desktop/WorkingFolder/openMSX/share/systemroms/
# -- Set The MSX Machine to emulate
variable MSX_MACHINE Panasonic_FS-A1GT 
# -- Use Musical Memory Cartridge to have 1024K of RAM : 1=on 0=off
variable USE_MEMORY_1024K 0
# -- Use GFX9000 Video Cartridge : 1=on 0=off
variable USE_GFX9000 0
# -- Use FM PAC FM Cartridge : 1=on 0=off
variable USE_FMPAC 0
# -- Use SCC+ Cartridge : 1=on 0=off
variable USE_SCC 1
# -- Use a Slot Exnansio, Cartridge (To use more than 2 cartridges at same time) : 1=on 0=off
variable USE_EXPANDER 1
# -- Default Scale Factor (OPenMSX's Window size  : 1, 2, 3)
variable DEFAULT_SCALE 3
# _______________________________________________________________________________________
# -- End of Machine Configuration  --
# _______________________________________________________________________________________
# -- Set File pool
#filepool add -path $SYSTEM_ROM_PATH -types system_rom
# _______________________________________________________________________________________
# -- General settings --
# _______________________________________________________________________________________
#-- Video & sound Settings --
set horizontal_stretch 302
set scale_algorithm simple
set scale_factor $DEFAULT_SCALE
set scanline 23
set blur 32
set glow 10
set maxframeskip 3
set master_volue 75
#set mute off
set save_settings_on_exit off
#set auto_enable_reverse off
#disable_reversebar
escape_grab
#set fullspeedwhenloading on
# _______________________________________________________________________________________ 
# Keys mapping Configuration
# meta = CMD key on MacOS / Win key on Windows
# _______________________________________________________________________________________
# Press META+CTRL+U Toggle Mute
bind META+CTRL+U "toggle mute"
# Press F11 to cycle from different video-sources if exists
bind F11 cycle videosource                        
# Press F12 to Force or release all Mouse/Keyboard inputs grabbed by OpenMSX
bind F12 "toggle grabinput"        
 
# Press ALT+F11 to decrease OpenMSX window
bind ALT+F11 -repeat "incr scale_factor -1"                    
# Press ALT+F12 to increase OpenMSX window
bind ALT+F12 -repeat "incr scale_factor 1"            
# Press SHIFT+F11 to decrease emulation Speed 10%
bind SHIFT+F11 -repeat "incr speed -10"                            
# Press SHIFT+F12 to increase emulation Speed 10%
bind SHIFT+F12 -repeat "incr speed 10"        
# Press META+W to toggle Power ON/OFF
bind META+W "toggle power"    
# Press META+R to Reset The Emulated MSX
bind META+R reset    
# Press META+F1 to make a screen copy of the emulation
bind META+F1 screenshot
# _______________________________________________________________________________________
# -- Plug a Slot Expansion cartridge
if {$USE_EXPANDER eq "1"} {
    ext slotexpander
}    
# -- Plug The Musical Memory Mapper with 1024K of RAM
if {$USE_MEMORY_1024K eq "1"} {                            
    ext Musical_Memory_Mapper
}
# -- Plug GFX9000 Graphic Interface 
if {$USE_GFX9000 eq "1"} {
    ext gfx9000                                            
}
# -- Plug The FMPAC MUSIC Expansion cartridge
if {$USE_FMPAC eq "1"} {
     ext fmpac
}
# -- Plug The SCC+ Expansion cartridge
if {$USE_SCC eq "1"} {
     ext scc+
}
 
# -- Emulate the Cursors keys as Joystick in MSX's joystick Port A
plug joyporta keyjoystick1                                
# -- Emulate your mouse as a MSX mouse in MSX's joystick port B
plug joyportb mouse                                     
# -- Starting the emulation at Full Speed
set throttle off                                        
# After 18 second of the OpenMSX clocks, the normal speed of the computer is set back to normal
after time 18 "set throttle on"        
 osd::display_message "Have fun dude !!"                            
 




Copiez ce code et sauvegardez le dans le dossier openMSX ou celui de votre choix, sous le nom, config.tcl

La première partie du script permet de définir des variables qui sont ensuite appliquées.

Ainsi si je souhaite utiliser la GFX_9000, je n’ai besoin que de changer la valeur de la variable 
variable USE_GFX9000 en la passant de 0 à 1 pour qu’elle soit automatiquement utilisée la prochaine fois que je lance l’émulateur avec le script.

La partie « General setting » permet de configurer l’apparence de la fenêtre de l’émulateur.

La partie « Keys Mapping » , définie des raccourcis clavier utiles dans l’émulateur

Les 2 dernière lignes du script permettent de démarrer l’émulation à la vitesse maximale possible par votre ordinateur, puis au bout de 18 secondes (en temps MSX émulé), l’émulation reprend à la vitesse normale d’un MSX.
Ceci permet de gagner du temps en évitant d’attendre pendant que le MSX s’initialise et affiche son logo.

Pour lancer cette configuration en ligne de commande, il suffit de taper ceci:

Windows:
> openmsx.exe -machine Panasonic_FS-A1GT -script <chemin>config.tcl -carta %HOMEPATH%\Desktop\Games\galious.rom

MacOS:

> ./openMSX.app/Contents/MacOS/openmsx
-machine Panasonic_FS-A1GT -script <chemin>config.tcl -carta $HOME/Desktop/Games/galious.rom





Démarrer openMSX par un double click sur un fichier ROM ou DSK (windows) 

(test et copie d’écran fait sur Windows 11)


Maintenant, ce que nous voulons c’est faire en sorte que openMSX s’ouvre tout seul lorsque l’on double-clique sur un fichier ROM ou DSK, tout en utilisant notre fichier de configuration TCL.


on va commencer par créer un script d’exécution BATCH


Code TEXT :
 
@echo off >nul: 2>nul:
set fullFileName=%1
set fileName=%~nx1
set extension=%~x1
echo Starting openMSX...
echo with %fileName%
if "%extension%"==".ROM" ( 
    set ADD_SOFTWARE="-carta"
)
if "%extension%"==".rom" ( 
    set ADD_SOFTWARE="-carta"
)
if "%extension%"==".DSK" ( 
    set ADD_SOFTWARE="-diska"
)
if "%extension%"==".dsk" ( 
    set ADD_SOFTWARE="-diska"
)
cd %HOMEPATH%\Desktop\openMSX\
start /B openmsx.exe -machine Panasonic_FS-A1GT -script config.tcl %ADD_SOFTWARE% %fullFileName%
EXIT /B 0
 


Copiez, coller le code ci-dessus, dans un éditeur texte et enregistrez le dans le dossier openMSX du Bureau sous le nom « start_openMSX.bat »

A ce stade on devrait avoir un dossier « openMSX » sur le bureau, avec ceci à l’intérieur

tuto-win-screen01

Maintenant trouvez un fichier ROM quelque part sur votre disque dur.
Double cliquez dessus. Normalement, Windows ne sais pas quoi faire avec ce fichier .ROM, il doit vous demander de choisir un logiciel pour ouvrir ce fichier.

tuto-win-screen02

Cliquez sur « plus d’applications »

tuto-win-screen03

Puis sur « rechercher une autre application sur ce PC ».

tuto-win-screen04

Une fenêtre de choix de fichier doit s’ouvrir. En bas à droite, cliquez de manière à faire « afficher tous les fichiers » dans ce menu.
Naviguez vers votre Bureau dans le dossier « openMSX » et choisissez le fichier « start_openMSX.bat » pour ouvrir ce type de fichiers.

Faites la même procédure pour les fichier .DSK.

Dorénavant, lorsque vous ferez un double click sur un fichier .ROM ou .DSK, cela ouvrira openMSX avec le fichier de configuration adéquat, ainsi que la ROM ou le DISK sur lequel vous avez cliqué.

Si vous désirez changer la configuration de la machine éculée avec d’autres extensions, il suffit de modifier le fichier config.tcl



Edité par ericb59 Le 05/05/2022 à 15h14


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 9391

Le 05/05/2022 à 12h46
on est quand même loin du CLICK & GO :sick


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5284

Le 05/05/2022 à 13h22
Jipe :
on est quand même loin du CLICK & GO :sick


C'est pour la suite


banniere-ericb59e
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5284

Le 05/05/2022 à 15h13
Voilà. Tuto pour Windows terminé. J'ai mis à jour le premier post.

J'utilise une autre méthode pour MacOS en utilisant l'application "Raccourcis" qui permet de créer des automatismes et des menus au sein de MacOS. Mais c'est plus long à expliquer car ca nécessite beaucoup de captures d'écran.
Du coup, je ne ferai cette partie que si il y a des gens intéressés (ou plus tard, si j'ai du temps). Edité par ericb59 Le 05/05/2022 à 15h13


banniere-ericb59e
Site web    
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 1335

Le 05/05/2022 à 16h15
Merci, mais... C'est clairement pas ma tasse de thé.
WebMSX et BlueMSX me suffisent dans 99% des cas où j'ai besoin d'un ému (voire éventuellement meisei)


Clé de sol

Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5284

Le 05/05/2022 à 19h31
Une remarque ne passant. Tous les paramètres d'open MSX sont sauvegardés automatiquement quand on quitte l'émulateur.
Ainsi, quand on relance une seconde fois openMSX, même sans script TCL, les derniers paramètres sont utilisés.
Je préfère, personnellement avoir le contrôle par le biais de ce script, plutôt que de taper des commandes dans la console d'openMSX.
C'est un choix. Comme je disais, au tout début, c'est ma méthode, si elle convient à d'autres tant mieux.


banniere-ericb59e
Site web    
Cylicano Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 24/10/2021 à 11h19

Messages: 216

Le 07/05/2022 à 17h19
Beau fil et beau sujet. Comme j'utilise OpenMSX sur mon Linux Mint, je vais tâcher, dans quelques temps, de transposer ton approche avec le fichier de configuration et voir ce que cela donne :)

Sous plusieurs distributions modernes de Linux, le "gestionnaires de paquets" permet d'installer en quelques clics OpenMSX et ses composants (Catapult). Il est bien présent dans l'énorme base de logiciels disponibles.


Rien ne se perd, tout doit se transformer.

E-mail    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5284

Le 19/05/2022 à 19h58
TUTO Suite
Utiliser La Cartouche CARNIVORE 2 avec openMSX

Voici ce qu'il faut faire :
D'abord voici les fichiers de la dernière mise à jour (05/2022)
Carnivore2-50.zip

Décompressez et copiez le fichier carnivore2.xml dans le dossier : openMSX\share\extensions\
copiez le fichier carnivore2.rom dans le dossier : openMSX\share\systemroms\extension
Ces nouveaux fichiers remplacent les précédents si ils sont présent.

Ouvrez Catapult, sélectionnez votre machine MSX, puis l'extensions Carnivore2
Cliquez sur <Start>

Normalement le menu de Boot de la carnivore doit s'afficher, après le boot du MSX...
Appuyez sur ESC pour quitter et arriver sur Basic.
Puis fermez openMSX.

Dans votre dossier <user>\documents\openMSX\persistent\carnivore2\untitled1\
il y a de nouveaux fichiers qui se sont automatiquement créés, dont le fichier hd.dsk qui correspond à la carte CF de la Carnivore.
Pour l'instant ce disque est vide.
J'ai créé un disque avec le minimum requis, c'est à dire les outils en ligne de commande de la Carnivore, et de Nestor.

Téléchargez le fichier carnivore-hd.dsk.zip
Décompressez le et copiez le dans le dossier précédemment cité.

De nouveau, dans Catapult, sélectionnez en plus un fichier pour le disque dur, dans la partie HARD-DRIVE.
Naviguez jusqu'à retrouver le fichier que l'on vient de copier, puis lancez l'émulation...

Cette fois quand vous quittez le menu de boot de la carnivore, vous devez arriver sous MSX-DOS.

Tests 1:
Mettre Maze Of Galious MSX2 dans le Boot Menu
de la carnivore
Tapez :
C2MAN GALIOUS.ROM

Puis répondez oui, (Y) à toutes les questions.

Faites Reset...
La Rom doit apparaitre dans le menu de boot. Selectionnez la, et démarrez la ROM en appuyant sur ESPACE.

Test 2:
Lancer un fichier .DSK

Depuis le MSX-DOS, tapez :
emufile gorby.emu gorby.dsk
puis
emufile set gorby.emu o
Après reset, puis après avoir passé le menu de la carnivore, la disquette Gorby's Pipeline doit se lancer.

Voilà...
Après vous pouvez installer d'autres choses pour simplifier les choses... A vous de voir.
Edité par ericb59 Le 20/05/2022 à 10h20


banniere-ericb59e
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5284

Le 20/05/2022 à 10h19
Tuto suite.
Comment créer une image disk (.DSK) avec openMSX. (Disquette et disque dur)

On peut créer depuis openMSX des images de disquette, ou une image de disque dur.
La restriction majeure de ce tuto, est que openMSX ne sait utiliser de base, que la FAT12 propre au MSX. Ce qui limite la taille des image disque-dur à 32 Mo.

Lancez openMSX.
Ouvrez la console d'openMSX. touche F10 sur windows, CMD+L sur MacOS

Créer une image disque dur de 32M
tapez :
diskmanipulator create TEST-HD 32M

un fichier TEST-HD.DSK sera créé en racine du dossier de lancement de openMSX.
Si vous utilisez Catapult pour lancer openMSX, le fichier sera en racine de l'exécutable de openMSX.

Créer une image disquette 720K
tapez:
diskmanipulator create FLOPPY.DSK 720K

Des disquettes vides ca sert pas à grand chose, voyons comment y ajouter des fichiers.
On suppose ici, que vous avez lancé openMSX avec une émulation d'un MSX qui est déjà pourvu d'un lecteur de disquette... Comme un MSX2 Philips 8250 par exemple.

On va dire au MSX d'utiliser la disquette qu'on vient de créer,
toujours depuis la console, tapez:
diska floppy.dsk

diskmanipulator format diska

pour importer des fichiers d'un dossier depuis votre ordinateur sur la disquette,
(on suppose ici, que le dossier où se trouvent les fichiers à importer est au même niveau que l'image de la disquette floppy.dsk)
diskmanipulator import diska mondossier

Dans le cas de l'usage d'une image de disque dur, c'est le même principe.
Il faut juste penser à installer l'interface IDE sur le MSX, et à assigner l'image du disque
Depuis la console, tapez :
set power off
ext ide
hda test-hd.dsk
set power on





banniere-ericb59e
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie