Ce qu'il faut d'abord savoir, c'est que Zspin respecte la même arborescence de dossiers que hyperspin.
De fait il supporte ce qui a été fait pour hyperspin (theme, database,...) certaines particularités restent encore à implanter tout de même.
Vous pouvez placer votre Zspin ou vous le voulez. Pour fonctionner il doit simplement pointer sur un répertoire de données construit comme suit.
Pour la version 0.2.0:
Au premier démarrage vous sera proposé un menu de configuration:
[*]Langue
[tab=30]Langue de l'application: Choix de la langue
[*]Chemins
[tab=30]Repertoire de données: sélectionnez votre répertoire [YourBox] selon l'exemple vue plus haut.
[*]Lanceur
[tab=30]Application lanceur: sélectionnez le .exe de votre launcher (RocketLauncher, RetroArch...)
[tab=30]Paramètres du lanceur: à modifier selon votre launcher
[*]Touches
[tab=30]Vous permet d'appliquer les contrôles de votre choix pour naviguer sous Zspin.
[*]Executer l'application
[tab=30]Au démarrage de zspin: Permet comme son nom l'indique d’exécuter une application au lancement de Zspin.
[tab=30]A la sortie de zspin: Permet comme son nom l'indique d’exécuter une application à la sortie de Zspin.
[*]Voir les dossiers
[tab=30]Permet d’ouvrir les différents dossiers.
[*]Remise à zéro
[tab=30]Permet de réinitialiser les paramètres
Les configs de ZSpin sont sauvées dans le répertoire
Code : Tout sélectionner
\Users\[Nom User]\AppData\Local\zspin
Hyperspin ne permettait pas de pointer un database type "main menu" depuis un autre du même format. Zspin rectifie cela et vous pouvez maintenant classer vos systèmes sur plusieurs niveaux.
Le seul imperatif reste que le menu initial soit nommé Main Menu.xml.
Exemple:
Code : Tout sélectionner
<menu>
<game name="Arcade"/>
<game name="Consoles"/>
<game name="Consoles Portables"/>
<game name="Ordinateurs"/>
</menu>
Code : Tout sélectionner
<menu>
<game name="Capcom"/>
<game name="Cave"/>
<game name="SNK Neo Geo"/>
</menu>
Code : Tout sélectionner
<menu>
<game name="Capcom Play System"/>
<game name="Capcom Play System 2"/>
<game name="Capcom Play System 3"/>
</menu>
Code : Tout sélectionner
<?xml version="1.0" encoding="utf-8"?>
<menu>
<header>
<listname>CPS3</listname>
<lastlistupdate>10/31/2011</lastlistupdate>
<listversion>1.0 Final</listversion>
<exporterversion>HyperList XML Exporter Version 1.3 Copywrite (c) 2009-2011 William Strong</exporterversion>
<hyperfreespin>HyperFREEspinToXML version 1.00</hyperfreespin>
</header>
<game name="sfiii3nr1" index="" image="">
<description>Street Fighter III: 3rd Strike - Fight for the Future</description>
<cloneof></cloneof>
<crc>8D7B1201</crc>
<manufacturer>Capcom</manufacturer>
<year>1999</year>
<genre>Fighting</genre>
<rating></rating>
<enabled>Yes</enabled>
</game>
<game name="sfiiij" index="" image="">
<description>Street Fighter III: 1st New Generation</description>
<cloneof></cloneof>
<crc></crc>
<manufacturer>Capcom</manufacturer>
<year>1997</year>
<genre>Fighting</genre>
<rating></rating>
<enabled></enabled>
</game>
<game name="warzard" index="" image="">
<description>Warzard / Red Earth</description>
<cloneof></cloneof>
<crc></crc>
<manufacturer>Capcom</manufacturer>
<year>1996</year>
<genre>Fighting</genre>
<rating></rating>
<enabled></enabled>
</game>
</menu>
Le seul impératif est de créer un dossier Media au nom de votre .xml et contenant les médias nécessaires à l'affichage du menu comme suit:
La position des wheels est définie par un fichier nommé wheel.json placé dans le dossier database du système voulu.
Il se présente sous cette forme:
Code : Tout sélectionner
{
"transitionTime": 170,
"selectPosition": 14,
"hide": false,
"hideStart": 1500,
"hideDuration": 1500,
"points": [
{"x":-25, "y":80, "angle":-70, "scale":1, "index":1},
{"x":-20, "y":80, "angle":-70, "scale":1, "index":2},
{"x":-15, "y":80, "angle":-70, "scale":1, "index":3},
{"x":-10, "y":80, "angle":-70, "scale":1, "index":4},
{"x":-5, "y":80, "angle":-70, "scale":1, "index":5},
{"x":0, "y":80, "angle":-70, "scale":1, "index":6},
{"x":5, "y":80, "angle":-70, "scale":1, "index":7},
{"x":10, "y":80, "angle":-70, "scale":1, "index":8},
{"x":15, "y":80, "angle":-70, "scale":1, "index":9},
{"x":20, "y":80, "angle":-70, "scale":1, "index":10},
{"x":25, "y":80, "angle":-70, "scale":1, "index":11},
{"x":30, "y":80, "angle":-70, "scale":1, "index":12},
{"x":35, "y":80, "angle":-70, "scale":1, "index":13},
{"x":40, "y":80, "angle":-70, "scale":1, "index":14},
{"x":60, "y":80, "angle":0, "scale":2.2, "index":15},
{"x":80, "y":80, "angle":-70, "scale":1, "index":14},
{"x":85, "y":80, "angle":-70, "scale":1, "index":13},
{"x":90, "y":80, "angle":-70, "scale":1, "index":12},
{"x":95, "y":80, "angle":-70, "scale":1, "index":11},
{"x":100, "y":80, "angle":-70, "scale":1, "index":10},
{"x":105, "y":80, "angle":-70, "scale":1, "index":9},
{"x":110, "y":80, "angle":-70, "scale":1, "index":8},
{"x":115, "y":80, "angle":-70, "scale":1, "index":7}
]
}
transitionTime: Le temps de transition pour le passage d'une wheel à l'autre.
selectPosition: désigne la wheel active, sachant que la numérotation commence de 0. Donc dans notre exemple la wheel 14 est désigné par la position de l'index 15
hide: true/false, désigne si vous souhaitez activer le hide ou pas.
hideStart désigne à partir de combien de temps le hide va débuter.
hideDuration: désigne la durée pour que les wheels disparaissent.
points: permet de placer su votre écran les points constituant votre wheel.
[tab=30]x: placement sur l'axe horizontal en pourcentage.
[tab=30]y: placement sur l'axe vertical en pourcentage.
[tab=30]angle: rotation de l’élément.
[tab=30]scale: zoom sur l’élément.
[tab=30]index: numérotation de l’élément. Attention selectPosition+1
Ce qui donne dans notre exemple:
Ceci est une ébauche fait sous tapatalk au boulot, le but étant d'avoir une doc consistante pour la release de samedi.
Nous travaillerons donc sa mise en page au fur et à mesure de son édition.
Il serait vraiment très utile,pour renseigner au mieux le Github, de traduire en anglais toutes ces instructions. Des consignes les plus précises aideront à un meilleur développement du soft. Donc si parmi nous un membre assez calé pourrait se proposer à traduire chacun des chapitres, merci à lui.
Envoyé de mon iPad en utilisant Tapatalk