DCMOTO sous Linux & Wine

Couvre tous les domaines de l'émulation logicielle ou de la virtualisation ainsi que les discussions sur les divers outils associés.

Modérateurs : Papy.G, fneck, Carl

daminus
Messages : 5
Inscription : 14 juin 2018 19:41

DCMOTO sous Linux & Wine

Message par daminus »

Bonjoir,

Pour ceux que ça pourrez intéresser voici 2 scripts pour installer & mettre à jour DCMOTO sous Linux et sans trop se prendre la tête.

Pour l’utiliser, il faut juste qu'une version de Wine soit déjà installé sur votre machine.
ensuite il vous suffira juste de lancer le script voulu.

PREREQUIS POUR WINE ;

Normalement une fois Wine installé sur votre machine.
Les 2 commandes suivantes suffisent pour la création de votre environnement 'WINEPRFIX 32bit''

Code : Tout sélectionner

export WINEPREFIX="$HOME/.wine/dcmoto"
export WINEARCH=win32
NE SURTOUT PAS INSTALLER le DLL Windows :

Code : Tout sélectionner

comctl32.dll
Pour éviter le message d'erreur : "waveOutOpen failed"

Image

Installer les paquets suivants
À adapter selon votre distribution Linux, celles ci-dessous sont valable pour Arch Linux et ses variantes

Code : Tout sélectionner

lib32-alsa-plugins
lib32-libpulse
lib32-openal
Le script d'installation créera les dossiers de travail ainsi que les lanceurs, il téléchargera aussi la dernière version stable de DCMOTO.
Toutes vos remarques ou modifs sont les bienvenues.

Ces scripts ont été mis à jour suite à la note du 16 mars 2024 concernant le nouveau contenu du zip et le fichier '.bat'

dcmoto-installer.sh

Code : Tout sélectionner

#!/bin/bash

#______________________________________________________
# dcmoto-installer.sh v1.2 - 2024/03/20
# http://dcmoto.free.fr/

# Script d'installation automatique dédié aux Systèmes Linux pour exécuter le programme Windows 'DCMOTO'
# Conçu et testé avec Arch Linux
# Ce script ne prend pas en charge l’installation de Wine
# L’installation de Wine et ses dépendances étant différente selon les distributions Linux utilisées [https://www.winehq.org/]
#______________________________________________________

# ARBORESCENCE DU SCRIPT

#	/home/username/
#	│  
#	├── .dcmoto
#	│    ├── dcmoto.exe
#	│    ├── dcmoto_AAAAMMJJ_aide.html
#	│    └── dcmoto_AAAAMMJJ_notes
#	│  
#	├── .wine
#	│    ├── 
#	│    ├── 
#	│    ├── dcmoto
#       │    │   ├── dosdevices
#       │    │   ├── drive_c
#	│    ├── 
#	│ 
#	├── Documents
#	├── Images
#	├── Musique
#	├── Téléchargements
#	├── Vidéos
#       │
#	└── VMs
#	     ├── 
#	     ├── 
#	     ├── Thomson
#	     │    ├── k7
#	     │    ├── mémo7
#	     │    ├── prog
#	     │    ├── 
#	     │    └── zip
#	     ├── 

#______________________________________________________

clear
echo ======================================================
echo DCMOTO pour Linux
echo http://dcmoto.free.fr/
echo ======================================================
echo
echo ======================================================
echo Ce script ne prend pas en charge l’installation de Wine
echo L’installation de Wine et ses dépendances étant différente
echo selon les distributions Linux utilisées [https://www.winehq.org/]
echo ======================================================;read

# Création conditionnelle des dossiers de travail
clear
echo ======================================================
echo Création des dossiers de travail et téléchargement de DCMOTO
echo --- home/username/.dcmoto [logiciel DCMOTO]
echo --- home/username/VMs/Thomson [memo7, k7, programmes...]
echo Pour continuer, appuyez sur Entrée
echo ======================================================;read
test ! -d "$HOME/.dcmoto" && mkdir "$HOME/.dcmoto"
test ! -d "$HOME/VMs/Thomson" || mkdir "$HOME/VMs/Thomson" && mkdir "$HOME/VMs/Thomson/k7" && mkdir "$HOME/VMs/Thomson/k7" && mkdir "$HOME/VMs/Thomson/memo7" && mkdir "$HOME/VMs/Thomson/prog" && mkdir "$HOME/VMs/Thomson/wine"

# Purge du dossier de travail
test -d "$HOME/.dcmoto" && rm ~/.dcmoto/*.exe && rm ~/.dcmoto/*.html

# Purge du cache et du WinePrefix existant [en cas de réinstallation]
rm -rf "$HOME/.cache/winetricks" && rm -rf "$HOME/.wine/dcmoto"

# [TEST] Téléchargement de la dernière version stable
# Extraction de la ligne à traiter dans l'index HTML
# curl 'http://dcmoto.free.fr/emulateur/index.html' | grep -E 'prog/dcmoto_.*download'
#    <a href="prog/dcmoto_AAAAMMJJ.zip"><img src="_img/download.png" alt="download"><br>
# Récupération de la balise [a href=]
# curl 'http://dcmoto.free.fr/emulateur/index.html' | grep -E 'prog/dcmoto_.*download' | sed -n 's/.*href="\([^"]*\)".*/\1/g p'
#    prog/dcmoto_AAAAMMJJ.zip
# Renommage de la terminaison de l'URL de téléchargement
# latest_release=$(curl 'http://dcmoto.free.fr/emulateur/index.html' | grep -E 'prog/dcmoto_.*download' | sed -n 's/.*href="\([^"]*\)".*/\1/g p')
# Téléchargement du zip
# curl -u dcmoto:thomson -O http://dcmoto.free.fr/emulateur/"$latest_release"

# Récupération de la dernière version stable
latest_release=$(curl 'http://dcmoto.free.fr/emulateur/index.html' | grep -E 'prog/dcmoto_.*download' | sed -n 's/.*href="\([^"]*\)".*/\1/g p')

# Mise à jour de la version dans le dossier de travail
test -n http://dcmoto.free.fr/emulateur/"$latest_release" && wget -qO /tmp/dcmoto.zip http://dcmoto.free.fr/emulateur/"$latest_release" --user=dcmoto --password=thomson
if 
   test -n /tmp/dcmoto.zip
then
   unzip -d "$HOME/.dcmoto" /tmp/dcmoto.zip && rm /tmp/dcmoto.zip
fi

# [OLD] Modification du nom du fichier exe 
# Pour ne pas modifier le fichier desktop à chaque nouvelle version
#mv ~/.dcmoto/*.exe ~/.dcmoto/dcmoto.exe

# [OPTION] Récupération du fichier zip pour archivage
test ! -d "$HOME/VMs/Thomson/zip" || mkdir "$HOME/VMs/Thomson" && mkdir "$HOME/VMs/Thomson/zip" 
wget -P "$HOME/VMs/Thomson/zip" http://dcmoto.free.fr/emulateur/"$latest_release" --user=dcmoto --password=thomson

# Création du WinePrefix 32 bits
clear
echo ======================================================
echo Quand le pop-up ‘Mono pour Windows’ apparaît, cliquez sur ‘Annuler’
echo Pour continuer, appuyez sur Entrée
echo ======================================================;read
export WINEPREFIX="$HOME/.wine/dcmoto"
export WINEARCH=win32
wineboot -u

# Installation de Windows
winecfg /v win11

# Récupération des icônes
test -d "$HOME/.icons" || mkdir "$HOME/.icons"
wget "https://sharedsite.com/hlm-de-renaud/upload/images/1709145145.png" -O "$HOME/.icons/logo_dcmoto.png"
wget "https://sharedsite.com/hlm-de-renaud/upload/images/1709145090.png" -O "$HOME/.icons/logo_to7-70.png"

# Création du fichier desktop pour lancer le programme DCMOTO
test -d "$HOME/.local/share/applications" || mkdir "$HOME/.local/share/applications"
cat << FIN > "$HOME/.local/share/applications/to7-70.desktop"
[Desktop Entry]
Name=TO7-70
#Exec=sh -c "env WINEPREFIX=$HOME/.wine/dcmoto wine $HOME/.dcmoto/dcmoto.exe"
Exec=sh -c "env WINEPREFIX=$HOME/.wine/dcmoto wine $HOME/.dcmoto/*.exe"
Comment=DCMOTO émule les ordinateurs 8bit Thomson MO5, MO5E, MO5N, MO5NR, MO6, T9000, TO7, TO7/70, TO8, TO8D, TO9, TO9+
Terminal=false
Icon=$HOME/.icons/logo_to7-70.png
Categories=Rétro PC
Type=Application
FIN

# [OPTION] Création du fichier desktop pour accéder au site http://dcmoto.free.fr/
test -d "$HOME/.local/share/applications" || mkdir "$HOME/.local/share/applications"
cat << FIN > "$HOME/.local/share/applications/dcmoto.desktop"
[Desktop Entry]
Name=DCMOTO
Exec=firefox -new-window http://dcmoto.free.fr/
Comment=Site de référence des ordinateurs 8 bits Thomson
Terminal=false
Icon=$HOME/.icons/logo_dcmoto.png
Categories=Forums
Type=Application
FIN

# [OPTION] Vérification de l'installation
clear
echo ======================================================
echo Vérification de la version Windows
echo Appuyez sur Entrée
echo ======================================================;read
echo
sh -c "env WINEPREFIX=$HOME/.wine/dcmoto winecfg -v"
echo
echo ======================================================
echo Pour continuer, appuyez sur Entrée
echo ======================================================;read
clear
echo ======================================================
echo Vérification du lanceur dédié à DCMOTO
echo Appuyez sur Entrée
echo ======================================================;read
echo
cat "$HOME/.local/share/applications/to7-70.desktop"
echo
echo ======================================================
echo Pour continuer, veuillez fermer l’image
echo ======================================================
echo
display "$HOME/.icons/logo_to7-70.png"
echo
echo ======================================================
echo Pour continuer, appuyez sur Entrée
echo ======================================================;read
clear
echo ======================================================
echo Vérification du lanceur dédié au site http://dcmoto.free.fr/
echo Appuyez sur Entrée
echo ======================================================;read
echo
cat "$HOME/.local/share/applications/dcmoto.desktop"
echo
echo ======================================================
echo Pour continuer, veuillez fermer l’image
echo ======================================================
echo
display "$HOME/.icons/logo_dcmoto.png"
echo
echo ======================================================
echo Pour continuer, appuyez sur Entrée
echo ======================================================;read

# Exécution de DCMOTO
clear
echo ======================================================
echo L’installation est terminée !
echo Pour lancer DCMOTO, appuyez sur Entrée
echo ======================================================;read
#sh -c "env WINEPREFIX=$HOME/.wine/dcmoto wine $HOME/.dcmoto/dcmoto.exe"

# [20240316] Les fichiers exécutables pour Windows ont été remplacés par des fichiers de données
# Pour éviter la détection de faux-positifs par les antivirus, le site dcmoto ne contient plus de fichiers exécutables pour Windows
# Les programmes sont distribués dans une archive .zip. Elle contient deux fichiers .dat et un fichier .bat permettant de reconstituer l'exe
# Décompactez ces fichiers dans un dossier de votre PC et lancez le fichier .bat. Le fichier .exe sera créé et lancé automatiquement
cd $HOME/.dcmoto && wine *.bat

# Par la suite DCMOTO pourra être lancé par la commande suivante
#sh -c "env WINEPREFIX=$HOME/.wine/dcmoto wine $HOME/.dcmoto/*.exe"

# Purge des lanceurs crées Wine
rm ~/.local/share/applications/wine-*
maj-dcmoto.sh

Code : Tout sélectionner

#!/bin/bash

#______________________________________________________
# maj-dcmoto.sh v1.2 - 2024/03/20
# http://dcmoto.free.fr/

# Script de mise à jour automatique dédié aux Systèmes Linux pour exécuter le programme Windows 'DCMOTO'
#______________________________________________________

# Purge du dossier de travail
test -d "$HOME/.dcmoto" && rm ~/.dcmoto/*.exe && rm ~/.dcmoto/*.html

# [TEST] Téléchargement de la dernière version stable
# Extraction de la ligne à traiter dans l'index HTML
# curl 'http://dcmoto.free.fr/emulateur/index.html' | grep -E 'prog/dcmoto_.*download'
#    <a href="prog/dcmoto_AAAAMMJJ.zip"><img src="_img/download.png" alt="download"><br>
# Récupération de la balise [a href=]
# curl 'http://dcmoto.free.fr/emulateur/index.html' | grep -E 'prog/dcmoto_.*download' | sed -n 's/.*href="\([^"]*\)".*/\1/g p'
#    prog/dcmoto_AAAAMMJJ.zip
# Renommage de la terminaison de l'URL de téléchargement
# latest_release=$(curl 'http://dcmoto.free.fr/emulateur/index.html' | grep -E 'prog/dcmoto_.*download' | sed -n 's/.*href="\([^"]*\)".*/\1/g p')
# Téléchargement du zip
# curl -u dcmoto:thomson -O http://dcmoto.free.fr/emulateur/"$latest_release"

# Récupération de la dernière version stable
latest_release=$(curl 'http://dcmoto.free.fr/emulateur/index.html' | grep -E 'prog/dcmoto_.*download' | sed -n 's/.*href="\([^"]*\)".*/\1/g p')

# Mise à jour de la version dans le dossier de travail
test -n http://dcmoto.free.fr/emulateur/"$latest_release" && wget -qO /tmp/dcmoto.zip http://dcmoto.free.fr/emulateur/"$latest_release" --user=dcmoto --password=thomson
if 
   test -n /tmp/dcmoto.zip
then
   unzip -d "$HOME/.dcmoto" /tmp/dcmoto.zip && rm /tmp/dcmoto.zip
fi

# [OLD] Modification du nom du fichier exe 
# Pour ne pas modifier le fichier desktop à chaque nouvelle version
#mv ~/.dcmoto/*.exe ~/.dcmoto/dcmoto.exe

# [OPTION] Récupération du fichier zip pour archivage
test ! -d "$HOME/VMs/Thomson/zip" || mkdir "$HOME/VMs/Thomson" && mkdir "$HOME/VMs/Thomson/zip" 
wget -P "$HOME/VMs/Thomson/zip" http://dcmoto.free.fr/emulateur/"$latest_release" --user=dcmoto --password=thomson

# Vérification
clear
echo ======================================================
echo La mise à jour de DCMOTO est terminée !
echo Pour lancer DCMOTO, appuyez sur Entrée
echo ======================================================;read
#sh -c "env WINEPREFIX=$HOME/.wine/dcmoto wine $HOME/.dcmoto/dcmoto.exe"

# [20240316] Les fichiers exécutables pour Windows ont été remplacés par des fichiers de données
# Pour éviter la détection de faux-positifs par les antivirus, le site dcmoto ne contient plus de fichiers exécutables pour Windows
# Les programmes sont distribués dans une archive .zip. Elle contient deux fichiers .dat et un fichier .bat permettant de reconstituer l'exe
# Décompactez ces fichiers dans un dossier de votre PC et lancez le fichier .bat. Le fichier .exe sera créé et lancé automatiquement
export WINEPREFIX="$HOME/.wine/dcmoto" && cd $HOME/.dcmoto && wine *.bat

# Par la suite DCMOTO pourra être lancé par la commande suivante
#sh -c "env WINEPREFIX=$HOME/.wine/dcmoto wine $HOME/.dcmoto/*.exe"

Image

Merci à Daniel de m'avoir expliqué....
Dernière modification par daminus le 20 mars 2024 22:59, modifié 1 fois.
uǝıɯɐp
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13300
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: DCMOTO sous Linux & Wine

Message par Carl »

Je viens de faire du ménage dans le topic Theodore...
Carl
daminus
Messages : 5
Inscription : 14 juin 2018 19:41

Re: DCMOTO sous Linux & Wine

Message par daminus »

Merci Carl
uǝıɯɐp
Sappas
Messages : 682
Inscription : 02 oct. 2022 18:11

Re: DCMOTO sous Linux & Wine

Message par Sappas »

Le mieux ça serait d'avoir un développement purement linux sans cette faille qu'est wine dans Linux.
Je ne remet pas en question le travail de qualité de Daniel sous Windows mais l'intégrité de la solution pour Linux
sporniket
Messages : 254
Inscription : 22 mars 2022 20:23
Localisation : Pas trop loin au sud de Paris

Re: DCMOTO sous Linux & Wine

Message par sporniket »

Je pense que Daniel a suffisamment répété que dcmoto utilise l'api Win32. Et que ce choix était motivé par l'absence d'alternative satisfaisante (dit autrement "ça marche moins bien -en particulier la gestion du clavier- et en plus il faut recoder un système d'interface"). Pour avoir vu le source de DCMO5 que j'avais bidouillé pour avoir un clavier vaguement Bépo, c'est effectivement une tannée pour coder l'interface de configuration.

Pour ma part j'ai une idée à base d'une instance spéciale de l'émulateur, de sorte que l'interface de configuration serait un simple programme MO, avec une émulation d'un contrôleur ad-hoc permettant de communiquer avec l'ordinateur hôte pour obtenir des informations comme la liste des images, et piloter l'instance normale de l'émulateur. Autrement dit 2 émulateurs qui tournent en simultané. Mais c'est du boulot et j'ai autre chose à faire.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: DCMOTO sous Linux & Wine

Message par Daniel »

J'ai toujours rêvé de séparer l'émulation proprement dite de l'interface utilisateur, pour permettre de porter l'émulateur plus facilement dans d'autres systèmes que Windows. Mais c'est un travail considérable, avec de grosses difficultés sur certains points (le son, les graphismes, le clavier, les joysticks...). Le portage serait aussi un énorme travail pour reconstituer toutes les boîtes de dialogue et toutes les interactions avec l'utilisateur. Je n'ai pas le courage de me lancer dans un développement de plusieurs années.

Par contre j'aide volontiers tous ceux qui voudront tenter l'aventure. Theodore en est un bon exemple : il est partit de dcto8d et a été ensuite été étendu aux autres ordinateurs. J'ai communiqué à l'auteur les roms et leurs patches, les images des claviers, j'ai répondu à toutes les questions. Il en sera de même si un autre programmeur décide de créer une version Linux. Pour ma part j'ai abandonné les développements Linux : à chaque révision du système, quelle que soit la distribution, il y avait toujours des modifications à faire pour assurer la compatibilité. Avec Windows, au contraire, il y a une compatibilité ascendante : mes programmes de 1998 fonctionnent encore aujourd'hui dans Windows 11 sans changer un seul octet.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Orion_
Messages : 177
Inscription : 07 août 2014 16:29
Localisation : Perpignan
Contact :

Re: DCMOTO sous Linux & Wine

Message par Orion_ »

Je suis sous linux depuis quelques temps car je ne supporte plus Windows 10 et les mises à jour automatique
J'ai eu du mal a trouver un émulateur MO5 pour linux, j'ai testé libtheodore sous retroarch mais c'est beaucoup trop galère a configurer et pour charger des programmes type k7 ou fd
La précédente version de wine ne fonctionnais pas bien avec dcmoto mais là j'ai mis à jour wine et maintenant ça fonctionne !
quel plaisir d'utilisez un émulateur vraiment très bien fait avec toute les options de configuration et surtout le debugger !
d'ailleurs je note qu'une nouvelle option que je réclamait il y a plusieurs années a enfin été ajoutée, à savoir le chargement de binaire en mémoire, tellement plus pratique pour le développement !
la seule erreur que j'avais avec dcmoto sous wine c'est quand je quitte le programme une erreur s'affiche "unix\home\user\dcmoto.ini", mais cela a été réglé grace a l'export de "WINEPREFIX" comme indiqué en début de topic.
j'utilisais aussi win32 api sous windows avant, maintenant sous linux j'utilise wxWidget qui est pas mal et multi platforme, par contre pour l'affichage vidéo temps réel, je suppose que SDL est peut être plus adapté, on peut mixer les 2 bien sur.
Programmation rétro ! Orion_'s website
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: DCMOTO sous Linux & Wine

Message par Daniel »

Dans l'évolution ancienne de Wine il y a eu des progrès et des récessions. Je parle d'il y a quatre ou cinq ans : dcmoto fonctionnait, à la version suivante de Wine il ne fonctionnait plus, deux ou trois versions plus tard il fonctionnait à nouveau. Il m'est arrivé de modifier le programme pour contourner des anomalies de Wine, par exemple la disparition de la barre de statut. Cette époque est révolue. Maintenant, d'après les témoignages d'utilisateurs, dcmoto fonctionne bien avec Wine dans Linux, et probablement aussi dans MacOS.

Quant à l'émulateur, il est souvent utilisé par les meilleurs développeurs Thomson. Ils contribuent énormément à son développement en signalant des bugs et en suggérant de nouvelles fonctions. Les bugs sont très vite corrigés, en général en moins d'une journée. Je filtre un peu les demandes de nouvelles fonctions pour éviter de créer une usine à gaz, mais chaque année il y a des progrès, par exemple l'émulation des nouvelles cartes son.

[Hors-sujet]Il y a des solutions pour bloquer Windows Update dans Windows 10 et 11. J'ai installé Windows 11 il y a deux ans et il n'a pas eu une seule modification depuis. En bloquant les mises à jour on retrouve la sérénité et un système d'une parfaite stabilité. C'est très reposant.
Daniel
L'obstacle augmente mon ardeur.
Sappas
Messages : 682
Inscription : 02 oct. 2022 18:11

Re: DCMOTO sous Linux & Wine

Message par Sappas »

La division Operating System de Microsoft est déficitaire depuis des années à l'instar des Unix propriétaires qui ont complètement disparus pour diverses raisons dont le coût de maintenance, Steve Balmer parlait du virus Linux.
Il n'avait pas complètement tord, la mutualisation des coûts fait de Linux, un cheval de Troie !
A l'instar des serveurs Azure dont l'adoption de Linux est majoritaire par les clients, les analystes prévoit la disparition de la technologie Microsoft.
La même chose pourrait se produire pour Windows, un Linux à la sauce Microsoft ramenant dans la communauté Linux des problèmes purement Microsoft...
Répondre