Buenas,
Comienzo la explicación de lo que acabo de comentar en el hilo del proyecto Ultrastar para Wii:
Ha caído en mis manos el juego Diney sing it! y como no soy fan de Hanna Montana, pues me he puesto a trastear con el para ver los formatos y os cuento lo que he descubierto a ver si entre todos podemos continuar a partir de ahí.
Bueno trataré de explicarme lo mejor posible paso por paso.
1- Estructura: ¿Dónde están las canciones?
Dentro de la partición de datos hay un directorio llamado songs, dentro de este subdirectorios para cada uno de los "artistas" del juego y dentro, subdirectorios para cada canción de ese "artista".
En este último nivel encontranmos 5 archivos: .vid (Vídeo con audio)-.tex (Thumbnail o "carátula")-1.xml-2.xml-3.xml (Letra y notas).
2- Vídeo:No tiene ningún misterio, es un vídeo en formato BIK como en otros muchos juegos que se puede manipular con RadTools.
El formato original de vídeo es el siguiente:
Vídeo 640 x 448 (ojo 448 no 480 ya que el juego añade bordes arriba y abajo) a 29,97 fps
Audio 48MHz 1,5Mps
En todas mis pruebas he respetado esto así que no estoy seguro de si funcionaría con otra configuración de vídeo.
3- XML:Vale está es la parte complicada e interesante, voy a tratar de explicarla para el que conozca el formato de ultrastar y para el que no, pondré un pequeño ejemplo con una canción de Aerosmith:
Formato Ultrastar:
#TITLE:Don't want to miss a Thing
#ARTIST:Aerosmith
#MP3:miss.mp3
#BPM:60,45
#GAP:30870
: 0 1 59 I
: 1 1 59 could
: 3 2 56 stay
: 5 1 59 a
: 6 5 61 wake
- 11
: 11 2 56 just
: 13 1 59 to
: 14 3 68 hear
: 17 1 64 you
: 19 3 66 brea
: 22 6 64 thing
E
Imaginemos que la canción es así de corta.

Voy a hacer una pequeña descripción de algunas partes para el que no conozca el formato:
BPM: Beats por minuto. Muy importante a la hora de pasar de un formato a otro.
GAP: Tiempo en milisegundos hasta que empieza a sonar la letra de la canción.
Cada línea que comienza por dos puntoses una sílaba que tendremos que cantar, el primer número indica el momento a partir del GAP en que comienza esa sílaba (en beats), el segundo indica la duración (también en beats) y el tercero el tono teniendo en cuenta que 0=C1(Do2) y ascienden de semitono en semitono. Para indicar que tras una sílaba acaba esa palabra debemos añaddir un espacio al final.
Un guion indica en que momento debe desparecer la frase que lo precede y la E indica el final.
Ahora lo interesante, formato sing it:
<?xml version="1.0" ?>
<Song>
<Pages>
<Page id="0" spoken="1">
<Notes>
<Note midi_note="36" special="0" start="0.0" end="0.044">START_SONG</Note>
</Notes>
</Page>
<Page id="1" spoken="0" microphone="player1">
<Notes>
<Note midi_note="71" special="0" start="30.870" end="31.118">I</Note>
<Note midi_note="71" special="0" start="31.119" end="31.366">colud</Note>
<Note midi_note="68" special="0" start="31.614" end="32.111">stay</Note>
<Note midi_note="71" special="0" start="32.112" end="32.359">a-</Note>
<Note midi_note="73" special="0" start="32.360" end="33.599">wake</Note>
</Notes>
</Page>
<Page id="2" spoken="0" microphone="player1">
<Notes>
<Note midi_note="68" special="0" start="33.600" end="34.096">just</Note>
<Note midi_note="71" special="0" start="34.097" end="34.344">to</Note>
<Note midi_note="80" special="0" start="34.345" end="35.088">hear</Note>
<Note midi_note="76" special="0" start="35.089" end="35.337">you</Note>
<Note midi_note="78" special="0" start="35.585" end="36.329">brea-</Note>
<Note midi_note="76" special="0" start="36.630" end="37.818">thing</Note>
</Notes>
</Page>
<Page id="3" spoken="1">
<Notes>
<Note midi_note="36" special="0" start="40.000" end="40.044">END_SONG</Note>
</Notes>
</Page>
</Pages>
</Song>
Explicación:
Bien no voy a entretenerme con los campos porque creo que se ve a simple vista y el formato en sí es sencillo.
Las 1ª y última página como veis son especiales, no se que diferencia tendrá poner más o menos tiempo en ellas
ni por qué tiene siempre el tono "36" y el tono 36 parece ser la nota más baja que es capaz de interpretar, así que en mis prueba he conservado estás paginas como las originales del archivo a sustituir. Las demás páginas indican una frase cada una. Y para indicar que una palabra no termina en esa sílaba hay que poner un guión detrás.
El tiempo: Lo primero que vemos es que aquí no hay GAP, los tiempos son absolutos.
También vemos que en este formato no hay beats sino que indica directamente los segundos (con precisión al milisegundo) en los que empieza y termina cada sílaba.
La formula para pasar de uno a otro es sencilla, pero la tarea es algo tediosa. La formula sería:
15/"BPM"*"tiemstamp de ultrastar"+"GAP"= "segundos para poner en sing it" (Espero que se entienda).
Las notas:
Bueno como ya he comentado antes en ultrastar 0=C1, pero aquí 0=C0 (Do 1), que es la nota más baja del formato MIDI. Así que hay que sumarle 12 a las notas de UltraStar (una octava=12 semitonos). Esta parte en realidad estaría por confirmar, pero en principio parece cuadrar bien.Notación igual que en Ultrastar pero asegurándonos de que la nota más baja esté por encima de 36 (normalmente sumándole una octava (+12) al los ficheros de Ultrastar queda bien).
Ampos ha creado U2S, un programa para pasar automaticamente archivos de UltraStar a Sing It!, aún tiene algunos fallos, pero se pueden solventar gracias al programa U2SNew que ha creado kuini. Por otra parte viablade ha creado XML2SINGIT, un programa para convertir las canciones de SingStar a Sing It!. (Aplicaciones al final del post)
Imágenes: El compañero Dabore ha creado el programa DSIC, que entre otras funciones nos permite convertir los .tex del Sing It! a otros formatos y viceversa. (Aplicaciones al final del post)
Textos (Artistas, nombres de canciones, etc.): Están casi todos en el archivo content.xml
-Artistas: Están al comienzo del archivo y en este formato:
<Artist id = "nº" name = "nombre del artista" gender = "male" />
Donde nº es un número de 1 a 99 y nombre del artista, pues el que corresponda

Canciones: Tienen este formato.
<Song id = "*" name = "nombre de la cancion" av_id = "*" artist_id = "**" lenience = "0">
Como veis ahí podemos editar el nombre de la canción y el artista al que corresponde (artist_id)
TODO LIST:Investigar el formato del las carátulas (loquesea.tex). Gracias Dabore.Buscar donde se guardan los nombre de las canciones (probablemente en alguno de los muchos xml que tiene el juego).Intentar automatizar, al menos en parte el proceso de pasar del formato de US al del Sing it!Gracias ampos, kuini y viablade.Otras consideraciones:
Para los que vayáis a colaborar una advertencia: el juego lleva como actualizacion el IOS37 (no lleva ninguna otra actualizacón importante, de hecho lleva el System Menu 3.1) y tratará de cargar en él, evidentemente no se puede cargar un disco trucha en IOS37 así que hay que cambiarle el IOS con IOS version patcher (yo he usado IOS36 sin problemas, pero podéis probar otros IOS) y ya de paso quitarle la actualización si no quieres instalar IOS37. O bien cargarlo desde GeckoOS.
Resumiendo, pequeño tutorial hecho por la compañera comepiedras (ligeramente modificado)
Ojo. Pendiente de actualización, gracias a la nueva aplicación de kuini Creacontent se simplifica el proceso, teneis un pequeño resumen de su utilización en este post:
0.- Comprar cualquier Sing It (todos son compatibles) y dumpear el juego.
1.- Abrir la ISO que hemos dumpeado (con cIOS DVD Dumper o Rawdump si tienes un lector LG compatible) con WiiScrubber (la última versión está en la carpeta mediafire de mi firma).
2.- Extraer content.xml de la partición de datos (Partition 2 - DATA).
3.- Coger una canción con formato ultrastar (todos los singstar, por ejemplo, están pasados a ultrastar), tenemos un jpg, un vídeo (avi, mpg o similar), a veces un mp3 u ogg (no sirve para nada, se puede borrar) y un txt (las notas y letra de la canción).
4.- Instalar RadTools en el PC. Ejecutamos la aplicación, buscamos el video de la canción de ultrastar y le damos a bink it, poniendo las opciones como indica viablade en
esta imagen o bien ajustando el tamaño del vídeo previamente en nuestro editor de vídeo favorito y convirtiendo más tarde con Radtools omitiendo las opciones Width y Heigh. Renombramos el resultado a video.vid (por ejemplo).
5.- Abrimos el programa U2SNew (asegurándonos de que U2S está en el mismo directorio) y damos a convertir, seleccionamos el txt y nos creará el fichero ya convertido con mismo nobre, pero con extensión xml. También poder convertir las canciones de juegos SingStar con el XML2SINGIT.
6.- Ahora tenemos las notas en cancion.xml y el video en video.vid. Pues bien, lo siguiente es decidir cual es la canción reemplazada. Cuando lo tengamos claro, abrimos el content.xml con el bloc de notas y cambiamos la información de Artista y Canción del original por la de la canción que vamos a meter, atentos en cambiar en todos los sitios.
7.- El último paso es tan simple como reemplazar con Wiiscrubber los archivos de la canción que hemos elegido reemplazar. Pues bien, basta que nombremos igual que en el original los archivos que hemos llamado video.vid y cancion.xml. Para mayor seguridad, reemplazar los tres xml de la cancion original por cancion.xml.
8.- Finalmente reemplazamos el content.xml original por el que modificamos en el paso 7.
OPCIONAL.- Si quieres modificar el thumbnail (una pequeña imagen que aparece apenas un segundo antes de que empiece la previsualización del vídeo), debes usar DSIC, para ello primero extrae mediante WiiScrubber los archivos de la ISO a una carpeta de tu PC (por ejemplo C:\custom), abre DSIC, ve a File-> Open y selcciona la carpeta en la que extrajiste los archivos. Una vez abierta ve a la pestaña "Audio Video" y selecciona la canción que vas a reemplazar, haz click derecho sobre la imagen que aparece abajo, selecciona reemplazar y elige la imagen que quieras (tamaño recomendado 256x128 pixels), veras que la imagen ha cambiado y ya puedes cerrar DSIC, por último reemplazar el archivo en la Iso con WiiScrubber, igual que el resto de los archivos.
MUY IMPORTANTE: Hagan una copia de la ISO original dumpeada, para no tener que dumpear en cada prueba, guardan el original dumpeado en cualquier sitio y modifican siempre una copia.
Con este método el juego arranca perfectamente y, además, según comentan otros usuarios la canción va a la perfección (tanto el video y la música como la letra y los tonos).
PD - El juego no deja hacer nada sin micros (logicamente) y en ultrastar casi ninguna canción tiene varias partes (duetos y esas cosas), así que supuse en este minituto que nuestra canción solo tiene un txt.
PD2 - Este tutorial es un método MANUAL y se está trabajando, bueno, DABORE está trabajando, en un método AUTOMATICO, donde una vez convertidos el txt y el vídeo, DSIC hace todo, le ponemos los nombres a las cosas y el se encarga de reemplazar, de modificar el content, de modificar la imagen jpg, etc.
Y ahora las aplicaciones:
U2S (Conversor de Ultrastar a Sing It!)
Descargar y U2SNew (resuelve los errores de U2S)
DescargarToSingIt (Programa que integra los conversores de Singstar y UtraStar con o sin U2S)
DescargarToSingItCmd (versión de linea de comandos, solo desde UltraStar)
DescargarXML2SINGIT (Conversor de SingStar a Sing It!)
DescargarDSIC (Aplicación que permite modificar imágenes, temas, el content.xml, ficheros .lua de los temas, etc...)
DescargarCreaContent (Aplicación para crear el content.xml y getionar el contenido de tu Custom)
DescargarPreguntas, dudas y correcciones siempre bienvenidas.
Un saludo.