Freestyle XBOX 360 Dashboard Ftp Support Xddd

SPlNeTe escribió:
Neopiro escribió:En lugar de cambiar los arcade por estos, podríamos añadir otra pestaña?


La modificación que indico en el anterior post, es para añadirlos a la pestaña de juegos xbox 360.

Saludos.


Podrias compilarlo para ejecutar GoDs solo? Yo es que juegos descomprimidos no uso ninguno.
Pues ahora probando de segundas no carga los GOD el motivo pues que añade al path del juego la carpeta .data he añadido una linea a la funcion para que reemplace el .data y ahora ya funciona bien.
Lo unico que no sale ni el titulo del juego ni el icono ni na de na pero pasandole el indexer Problema resuelto.


void ContentList::ScanGODGame(int type, wstring path, wstring id)
{
   WIN32_FIND_DATA findFileData;
   memset(&findFileData,0,sizeof(WIN32_FIND_DATA));
   wstring searchcmd = path + L"\\0000000000000000\\" + id + L"\\00007000\\*";
   searchcmd = str_replaceall(searchcmd,L"\\\\",L"\\");
   HANDLE hFind = FindFirstFile(wstrtostr(searchcmd).c_str(), &findFileData);
   if (hFind == INVALID_HANDLE_VALUE)
      return;

   do {
      wstring ss = strtowstr(findFileData.cFileName);
     wstring s = str_replace(ss,L".data",L"");
      ContentItem * item = new ContentItem();
      item->path = sprintfa(L"%s0000000000000000\\%s\\00007000\\%s",path.c_str(),id.c_str(),s.c_str());
      //DebugMsg("Adding XBLX %s",item->path.c_str());
      item->type = type;
      item->id = id;
      item->Exist = true;
      item->source = 3;
      item->imagefolder = id;

      MakeShortPath(item);

      AnyChanged = true;

      XBLAParse(item);

      Content.push_back(item);
   } while (FindNextFile(hFind, &findFileData));

   FindClose(hFind);
}



Para Compilarlo el Visual Studio 2005 ya que no quieren soltar una nueva version del sdk (que se filtro) que es compatible con el Vs2008 y tiene muchas mas opciones.

deadroach si no tienes ningun juego descomprimido da igual no aparecera ninguno solo te apareceran los God y si algún dia metes alguno pues saldra.
deadroach escribió:
Maky^^ escribió:Perdonad si molesta esta pregunta muy muy de ignorante, ¿Que son los GoD?


GoD es Games on Demand. Son juegos originales de disco transformados al formato PIRS, es decir empaquetados para ser ejecutados en 360. :)


Vale, ¿Y presenta este tipo de juegos alguna ventaja frente a como los cargamos en el Freestyle? Saludos.
Froggy__007 escribió:Pues ahora probando de segundas no carga los GOD el motivo pues que añade al path del juego la carpeta .data he añadido una linea a la funcion para que reemplace el .data y ahora ya funciona bien.


La extensión de los GOD es ".data"? Si es así, con cambiar el nombre del fichero para que no tenga extensión es suficiente. Aunque también se podría indicar en la rutina de ejecución, que los .data se lancen como los XBLA.

Maky^^ escribió:
deadroach escribió:
Maky^^ escribió:Perdonad si molesta esta pregunta muy muy de ignorante, ¿Que son los GoD?


GoD es Games on Demand. Son juegos originales de disco transformados al formato PIRS, es decir empaquetados para ser ejecutados en 360. :)


Vale, ¿Y presenta este tipo de juegos alguna ventaja frente a como los cargamos en el Freestyle? Saludos.


La única ventaja, es que se pueden ejecutar directamente desde el dashboard original, siempre que estén en el disco duro de la consola.

Indicar que la modificación extrae los juegos GOD de los directorios indicados en el config.xml para los XBLA.

Haber si alguien se anima y modifica el indexer para que sea mas "visual", mostrando la caratula y las imágenes, como un catalogador.

Saludos.
SPlNeTe escribió:
La extensión de los GOD es ".data"? Si es así, con cambiar el nombre del fichero para que no tenga extensión es suficiente. Aunque también se podría indicar en la rutina de ejecución, que los .data se lancen como los XBLA.





No me explique del todo bien a ver.
Los God el lanzador tiene por nombre el titleid del juego sin extension pero tambien tiene un directorio con nombre titleid.data
entonces el problema esta en que al scanear agrega al content.xml el directorio osea titleid.data entonces lo que e echo es que elimine el .data para que lo agregue correctamente al xml.
Un ejemplo Mas effect2:
Dentro de 00007000

454108CE (Este es el Lanzador el que tiene que aparecer en el xml para que lo lanze correctamente)
454108CE.data (Este es el directorio que es el que aparecia en el xml y da error al cargar el juego)
Entonces lo que e modificado es esto lo e dejado asi y asi aparece correctamente en el xml
wstring ss = strtowstr(findFileData.cFileName);
     wstring s = str_replace(ss,L".data",L"");


Lo raro es que no sale el icono ni el titulo estando en la misma posicion que los arcade viendolo con el editor hexadecimal.
Por curiosidad, ¿como se llaman los archivos de un GOD y que extensión tienen?, ¿Que ficheros tiene el directorio titleid.data?

Saludos.
SPlNeTe escribió:Por curiosidad, ¿como se llaman los archivos de un GOD y que extensión tienen?, ¿Que ficheros tiene el directorio titleid.data?

Saludos.


No tienen extension y se llaman data0000 , data0001 y asi sucesivamente segun las partes que sean son partes de 162mb y se encuentran en el directorio con extension .data y el lanzador son 42kb.
Froggy__007 escribió:
SPlNeTe escribió:Por curiosidad, ¿como se llaman los archivos de un GOD y que extensión tienen?, ¿Que ficheros tiene el directorio titleid.data?

Saludos.


No tienen extension y se llaman data0000 , data0001 y asi sucesivamente segun las partes que sean son partes de 162mb y se encuentran en el directorio con extension .data


Y fuera del directorio titleid.data? Que ficheros hay?

Saludos.
SPlNeTe escribió:
Froggy__007 escribió:
SPlNeTe escribió:Por curiosidad, ¿como se llaman los archivos de un GOD y que extensión tienen?, ¿Que ficheros tiene el directorio titleid.data?

Saludos.


No tienen extension y se llaman data0000 , data0001 y asi sucesivamente segun las partes que sean son partes de 162mb y se encuentran en el directorio con extension .data


Y fuera del directorio titleid.data? Que ficheros hay?

Saludos.

el lanzador unicamente
La función ScanGODGame, añade una "juego" por cada fichero o directorio encontrado en la ruta del juego. ¿Te esta creando 2 entradas, una para el directorio y otra para el fichero?.

Creo que seria necesario comprobar si se esta añadiendo un directorio o un fichero, para que solo procese el fichero del lanzador.

void ContentList::ScanGODGame(int type, wstring path, wstring id)
{
   WIN32_FIND_DATA findFileData;
   memset(&findFileData,0,sizeof(WIN32_FIND_DATA));
   wstring searchcmd = path + L"\\0000000000000000\\" + id + L"\\00007000\\*";
   searchcmd = str_replaceall(searchcmd,L"\\\\",L"\\");
   HANDLE hFind = FindFirstFile(wstrtostr(searchcmd).c_str(), &findFileData);
   if (hFind == INVALID_HANDLE_VALUE)
      return;
   else if (FILE_ATTRIBUTE_DIRECTORY != findFileData.dwFileAttributes)
  {
   do {
      wstring s = strtowstr(findFileData.cFileName);
      ContentItem * item = new ContentItem();
      item->path = sprintfa(L"%s0000000000000000\\%s\\00007000\\%s",path.c_str(),id.c_str(),s.c_str());
      //DebugMsg("Adding XBLX %s",item->path.c_str());
      item->type = type;
      item->id = id;
      item->Exist = true;
      item->source = 3;
      item->imagefolder = id;

      MakeShortPath(item);

      AnyChanged = true;

      XBLAParse(item);

      Content.push_back(item);
   } while (FindNextFile(hFind, &findFileData));

   FindClose(hFind);
  }
}

Saludos.
No e visto ninguno repetido pero tampoco te lo puedo asegurar porque ayer por la tarde probe un juego pero a la noche ya no cargaba.
Pero vamos con el indexer no e visto ninguno repetido.
desde ke meti la version 1.09 en el hdd no me aparecen ningunas letras..
como si faltaran en el skin las fonts..
a que se puedes deber eso?

Salu2
BoyChaos
BoyChaos escribió:desde ke meti la version 1.09 en el hdd no me aparecen ningunas letras..
como si faltaran en el skin las fonts..
a que se puedes deber eso?

Salu2
BoyChaos


Prueba a borrar la carpeta del freestyle y a volver a copiarlo.

Aquí tenéis la modificación para añadir el icono y el titulo de los GOD games.

ContentList.cpp

Modificar función ScanGODGame

void ContentList::ScanGODGame(int type, wstring path, wstring id)
{
   WIN32_FIND_DATA findFileData;
   memset(&findFileData,0,sizeof(WIN32_FIND_DATA));
   wstring searchcmd = path + L"\\0000000000000000\\" + id + L"\\00007000\\*";
   searchcmd = str_replaceall(searchcmd,L"\\\\",L"\\");
   HANDLE hFind = FindFirstFile(wstrtostr(searchcmd).c_str(), &findFileData);
   if (hFind == INVALID_HANDLE_VALUE)
      return;
   else if (FILE_ATTRIBUTE_DIRECTORY != findFileData.dwFileAttributes)
   {
      do {
         wstring s = strtowstr(findFileData.cFileName);

         ContentItem * item = new ContentItem();
         item->path = sprintfa(L"%s0000000000000000\\%s\\00007000\\%s",path.c_str(),id.c_str(),s.c_str());
         //DebugMsg("Adding XBLX %s",item->path.c_str());
         item->type = type;
         item->id = id;
         item->Exist = true;
         item->source = 3;
         item->imagefolder = id;

         MakeShortPath(item);

         AnyChanged = true;

         GODParse(item);

         Content.push_back(item);
      } while (FindNextFile(hFind, &findFileData));

      FindClose(hFind);
   }
}


Añadir la función GODParse
void ContentList::GODParse(ContentItem * item)
{
   //DebugMsg("Parsing GOD %s",item->path.c_str());
   FILE * fp = NULL;
   _wfopen_s(&fp,item->path.c_str(),L"rb");
   if (!fp)
   {
      DebugMsg("Unable to open %S",item->path.c_str());
      return;
   }
   byte k[4];


   fseek(fp,0x344,SEEK_SET);
   fread((void*)(&k),4,1,fp);
   item->packagetype = sprintfa(L"%02x%02x%02x%02x",k[0],k[1],k[2],k[3]);

   if (item->packagetype != L"00007000")
   {
      DebugMsg("Not GOD game -> %S",item->packagetype.c_str());
      fclose(fp);
      return;
   }

   fseek(fp,0x360,SEEK_SET);
   fread((void*)(&k),4,1,fp);
   item->id = sprintfa(L"%02x%02x%02x%02x",k[0],k[1],k[2],k[3]);

   WCHAR title[0x400];
   memset(title,0,0x400);
   fseek(fp,0x411,SEEK_SET);
   fread((void*)(&title),2,0xFF,fp);

   item->title = title;
   item->title = str_replaceall(item->title,L"\"",L"");

   fclose(fp);


   if (!FileExists(datapath + L"artwork"))
      _wmkdir(wstring(datapath + L"artwork").c_str());
   if (!FileExists(datapath + L"artwork\\" + item->imagefolder))
      _wmkdir(wstring(datapath + L"artwork\\" + item->imagefolder).c_str());

   wstring outfile = datapath + L"artwork\\" + item->imagefolder + L"\\icon.png";

   if (!FileExists(outfile))
   {
      if (ExtractLiveImage(outfile,item->path,0))
      {
         item->i_Icon = true;
      }
   } else {
      item->i_Icon = true;
   }
}


ContentList.h

Añadir la declaración de la función GODParse
   void GODParse(ContentItem * item);


Acabo de ver que axc97c ya publico la semana pasada en xbox scene estas mismas funciones para lanzar los GOD games, pero no comprueba lo de los directorios de los god games y tampoco a cambiado la extracción del icono y el titulo.

Supongo que si sale otra versión tendrá todo añadido.

Saludos.


Aunque
A ver si consigo el SDK y me pongo a hacer cosillas con el XBOX UI AUTHORING TOOL
SPlNeTe escribió:
BoyChaos escribió:desde ke meti la version 1.09 en el hdd no me aparecen ningunas letras..
como si faltaran en el skin las fonts..
a que se puedes deber eso?

Salu2
BoyChaos


Prueba a borrar la carpeta del freestyle y a volver a copiarlo.

Aquí tenéis la modificación para añadir el icono y el titulo de los GOD games.

ContentList.cpp

Modificar función ScanGODGame

void ContentList::ScanGODGame(int type, wstring path, wstring id)
{
   WIN32_FIND_DATA findFileData;
   memset(&findFileData,0,sizeof(WIN32_FIND_DATA));
   wstring searchcmd = path + L"\\0000000000000000\\" + id + L"\\00007000\\*";
   searchcmd = str_replaceall(searchcmd,L"\\\\",L"\\");
   HANDLE hFind = FindFirstFile(wstrtostr(searchcmd).c_str(), &findFileData);
   if (hFind == INVALID_HANDLE_VALUE)
      return;
   else if (FILE_ATTRIBUTE_DIRECTORY != findFileData.dwFileAttributes)
   {
      do {
         wstring s = strtowstr(findFileData.cFileName);

         ContentItem * item = new ContentItem();
         item->path = sprintfa(L"%s0000000000000000\\%s\\00007000\\%s",path.c_str(),id.c_str(),s.c_str());
         //DebugMsg("Adding XBLX %s",item->path.c_str());
         item->type = type;
         item->id = id;
         item->Exist = true;
         item->source = 3;
         item->imagefolder = id;

         MakeShortPath(item);

         AnyChanged = true;

         GODParse(item);

         Content.push_back(item);
      } while (FindNextFile(hFind, &findFileData));

      FindClose(hFind);
   }
}


Añadir la función GODParse
void ContentList::GODParse(ContentItem * item)
{
   //DebugMsg("Parsing GOD %s",item->path.c_str());
   FILE * fp = NULL;
   _wfopen_s(&fp,item->path.c_str(),L"rb");
   if (!fp)
   {
      DebugMsg("Unable to open %S",item->path.c_str());
      return;
   }
   byte k[4];


   fseek(fp,0x344,SEEK_SET);
   fread((void*)(&k),4,1,fp);
   item->packagetype = sprintfa(L"%02x%02x%02x%02x",k[0],k[1],k[2],k[3]);

   if (item->packagetype != L"00070000")
   {
      DebugMsg("Not GOD game -> %S",item->packagetype.c_str());
      fclose(fp);
      return;
   }

   fseek(fp,0x360,SEEK_SET);
   fread((void*)(&k),4,1,fp);
   item->id = sprintfa(L"%02x%02x%02x%02x",k[0],k[1],k[2],k[3]);

   WCHAR title[0x400];
   memset(title,0,0x400);
   fseek(fp,0x411,SEEK_SET);
   fread((void*)(&title),2,0xFF,fp);

   item->title = title;
   item->title = str_replaceall(item->title,L"\"",L"");

   fclose(fp);


   if (!FileExists(datapath + L"artwork"))
      _wmkdir(wstring(datapath + L"artwork").c_str());
   if (!FileExists(datapath + L"artwork\\" + item->imagefolder))
      _wmkdir(wstring(datapath + L"artwork\\" + item->imagefolder).c_str());

   wstring outfile = datapath + L"artwork\\" + item->imagefolder + L"\\icon.png";

   if (!FileExists(outfile))
   {
      if (ExtractLiveImage(outfile,item->path,0))
      {
         item->i_Icon = true;
      }
   } else {
      item->i_Icon = true;
   }
}


ContentList.h

Añadir la declaración de la función GODParse
   void GODParse(ContentItem * item);


Acabo de ver que axc97c ya publico la semana pasada en xbox scene estas mismas funciones para lanzar los GOD games, pero no comprueba lo de los directorios de los god games y tampoco a cambiado la extracción del icono y el titulo.

Supongo que si sale otra versión tendrá todo añadido.

Saludos.


Aunque


Lo acabo de probar y los juegos funcionan pero el icono y el titulo siguen sin salir aunque por lo que veo que intenta buscarlo en el directorio.
Pongo el Debug.log
Thread Started
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\45410828\00007000\26880AFE1F651412CA2A4B4B5F9B64F0.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\4D5307FA\00007000\8661A75E7CDF16A4B8B5B580368DE6DD.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\41560802\00007000\3E267B59E223308B35BB16B5178C8A16.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\45410866\00007000\D7B689E303C8C623FFC313D74E91ABEC.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\5451083B\00007000\864C7526078E4E0DF9B2F37C6FF4F789.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\54510838\00007000\E7FD2E17CA6438284A2BCCC659180D5B.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\4B4E07F0\00007000\2DB69CE7293B54D50C86671A2039BCA9.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\5553080C\00007000\583E30D7A683BEFBC9063D5A42268DB7.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\45410806\00007000\44ADACA471A938D15777D1EB24EF448B.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\4D5307D5\00007000\9EB0FA9A128AE06AAB59981A76E9DF5B.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\4D5307D6\00007000\6ECCCBBCC989E6A7EBC246AD0C5A7E11.data
Not GOD game -> 00007000
Not GOD game -> 00007000
Not GOD game -> 00007000
Not GOD game -> 00007000
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\445007D4\00007000\445007D4.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\4D5707D2\00007000\1C7DA39B6093350911D812ED00A5CD57.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\545107E6\00007000\E8181B8035D2F73D20BDF9C550F1B10F.data
Unable to open hdd1:\Content\0000000000000000\545107E6\00007000\original
Parsing XBLA
Saving icon as , offset 5914, size 15465
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\53450825\00007000\C751D6E3EADDA093E21873731B11B603.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\53450825\00007000\53450825.data
Not GOD game -> 00007000
Not GOD game -> 00007000
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\5553083B\00007000\5553083B.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\53450813\00007000\53450813.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\454108CE\00007000\454108CE.data
Not GOD game -> 00007000
Unable to open hdd1:\Content\0000000000000000\4D530877\00007000\4D530877.data
Parsing XBLA
Saving icon as , offset 5914, size 17170
Parsing XBLA
Saving icon as , offset 5914, size 14426
Parsing XBLA
Saving icon as , offset 5914, size 10458
Parsing XBLA
Saving icon as , offset 5914, size 14791
Parsing XBLA
Saving icon as , offset 5914, size 8834
Parsing XEX
Got 06759f9c, 545407f2, version 10, 10, Disk 1 of 1
Extracting icon from
Saving icon as , offset 5914, size 14740
Parsing XEX
Got 1bdf2032, 53450813, version 1, 1, Disk 1 of 1


Sin embargo si comento esta condicion muestra los iconos y el titulo con el codigo que yo puse ayer.
if (item->packagetype != L"00070000")
   {
      DebugMsg("Not GOD game -> %S",item->packagetype.c_str());
      fclose(fp);
      return;
Lo que tu pusiste ayer esta bien y funciona, pero lo correcto seria comprobar que el archivo que se esta pasando es un archivo o un directorio.

Has metido esta parte en el ScanGODGame?

else if (FILE_ATTRIBUTE_DIRECTORY != findFileData.dwFileAttributes)


Se supone que esto impide comprobar la carpeta.

Saludos.
Si lo tengo puesto y funcionan los juegos pero no debe de comprobarlo correctamente porque en el debug.log esta intentando abrir el directorio como si fuera un fichero para extraer la imagen y el titulo
En el código utilizan esto para comprobar si es un directorio:

if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)


Supongo que con la negación debería funcionar

if (!(findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))


Saludos.

Sin embargo si comento esta condicion muestra los iconos y el titulo con el codigo que yo puse ayer.
if (item->packagetype != L"00070000")
   {
      DebugMsg("Not GOD game -> %S",item->packagetype.c_str());
      fclose(fp);
      return;


Esto es fallo mio, cambia el packagetype "00070000" por "00007000"
if (item->packagetype != L"00007000")
   {
      DebugMsg("Not GOD game -> %S",item->packagetype.c_str());
      fclose(fp);
      return;
Vale problema resuelto el problema es que estaba fuera de la instruccion Do.
Ahora funciona perfecto.Gracias.

void ContentList::ScanGODGame(int type, wstring path, wstring id)
{
   WIN32_FIND_DATA findFileData;
   memset(&findFileData,0,sizeof(WIN32_FIND_DATA));
   wstring searchcmd = path + L"\\0000000000000000\\" + id + L"\\00007000\\*";
   searchcmd = str_replaceall(searchcmd,L"\\\\",L"\\");
       
   HANDLE hFind = FindFirstFile(wstrtostr(searchcmd).c_str(), &findFileData);
   if (hFind == INVALID_HANDLE_VALUE)
      return;
            do {
      if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
      {
      } else {
         wstring s = strtowstr(findFileData.cFileName);
         ContentItem * item = new ContentItem();
         item->path = sprintfa(L"%s0000000000000000\\%s\\00007000\\%s",path.c_str(),id.c_str(),s.c_str());
         //DebugMsg("Adding XBLX %s",item->path.c_str());
         item->type = type;
         item->id = id;
         item->Exist = true;
         item->source = 3;
         item->imagefolder = id;
         MakeShortPath(item);
         AnyChanged = true;
         GODParse(item);
         Content.push_back(item);
      }
      } while (FindNextFile(hFind, &findFileData));

      FindClose(hFind);
   }
Si lográis una versión funcional podríais colgarla ? o estaríamos violando alguna norma porque esta realizado con el sdk...?
Si aki no se pudiera, estaria bien colgarlo en el foro de scene donde esta el post del creador del freestyle
Disculpen si ya se pregunto... este Freestyle Dashboard no detecta los GOD instalados en el disco interno de la consola, correcto?
Gracias por responder...
SPlNeTe escribió:
BoyChaos escribió:desde ke meti la version 1.09 en el hdd no me aparecen ningunas letras..
como si faltaran en el skin las fonts..
a que se puedes deber eso?

Salu2
BoyChaos


Prueba a borrar la carpeta del freestyle y a volver a copiarlo.



pues parece ke no..
tiene algo ke ver con el skin de aqui del foro..
elijo uno de los otros skin standard, funciona todo bien..
elijo el de aqui, no me aparecen ningunas letras..

Salu2
BoyChaos
REYSHARK escribió:Si aki no se pudiera, estaria bien colgarlo en el foro de scene donde esta el post del creador del freestyle

putuco escribió:Disculpen si ya se pregunto... este Freestyle Dashboard no detecta los GOD instalados en el disco interno de la consola, correcto?
Gracias por responder...

Ya esta en xbox-scene, los GOD salen en la carpeta Games y aparte lleva tambien puesto las temperaturas
Froggy__007 escribió:Vale problema resuelto el problema es que estaba fuera de la instruccion Do.
Ahora funciona perfecto.Gracias.

void ContentList::ScanGODGame(int type, wstring path, wstring id)
{
   WIN32_FIND_DATA findFileData;
   memset(&findFileData,0,sizeof(WIN32_FIND_DATA));
   wstring searchcmd = path + L"\\0000000000000000\\" + id + L"\\00007000\\*";
   searchcmd = str_replaceall(searchcmd,L"\\\\",L"\\");
       
   HANDLE hFind = FindFirstFile(wstrtostr(searchcmd).c_str(), &findFileData);
   if (hFind == INVALID_HANDLE_VALUE)
      return;
            do {
      if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
      {
      } else {
         wstring s = strtowstr(findFileData.cFileName);
         ContentItem * item = new ContentItem();
         item->path = sprintfa(L"%s0000000000000000\\%s\\00007000\\%s",path.c_str(),id.c_str(),s.c_str());
         //DebugMsg("Adding XBLX %s",item->path.c_str());
         item->type = type;
         item->id = id;
         item->Exist = true;
         item->source = 3;
         item->imagefolder = id;
         MakeShortPath(item);
         AnyChanged = true;
         GODParse(item);
         Content.push_back(item);
      }
      } while (FindNextFile(hFind, &findFileData));

      FindClose(hFind);
   }


Joder que fallo mas tonto, al final los problemas siempre son por cosas así.

Ahora seria interesante crear transiciones para las imágenes que se muestran y añadir alguna mas. Os animáis?

En xbox-scene esta publicado el código para extraer las temperaturas.

smc_constants.h

//Thanks to www.free60.org/SMC for helping me get front LEDs right
#pragma once
#ifndef _SMC_CONSTANTS_H
#define _SMC_CONSTANTS_H

//sorry for the extreme amount of constants trying to make functions
//easier to use

//Power LED
#define POWER_LED_BLINK            0x10
#define POWER_LED_DEFAULT        0x02
#define POWER_LED_ON            0x01
#define POWER_LED_OFF            0X03

//Quadrant LEDs
//NOTE: LED constants are determined with console laying down
//        with LED color bits being, starting from tope left 1, 2, 4, 8

//Thanks to unknown v2 for the following
typedef enum _LEDState
{
    OFF        = 0x00,
    RED        = 0x08,
    GREEN    = 0x80,
    ORANGE    = 0x88
}LEDState;


#endif


smc.h

//Thanks to tmbinc for smc.c
#pragma once
#ifndef _SMC_H
#define _SMC_H

#include <stdafx.h>
#include "smc_constants.h"

//Call to SMC message function in xboxkrnl.lib
extern "C" void __stdcall HalSendSMCMessage(LPVOID input, LPVOID output);   //thanks to cory1492

class smc
{
    public:
        void SetPowerLED(unsigned char command, bool animate);
        void SetLEDS(LEDState s1, LEDState s2, LEDState s3, LEDState s4);    //Thanks unknown v2
        void GetTemps(float *temps, bool celsius);

    private:
};

#endif


smc.cpp

#include "smc.h"
#include <string.h>



//Usage: command is one of the POWER_LED constants from smc_constant.h
//         animate is true for ring LED startup light sequence
void smc::SetPowerLED(unsigned char command, bool animate)
{
    unsigned char msg[0x10];

    memset(msg, 0x00, 0x10);
    msg[0] = 0x8c;
    msg[1] = command;
    msg[2] = (animate ? 0x01 : 0x00);

    HalSendSMCMessage(msg, NULL);
}


//Usage: color is one of LED constants from smc_constant.h
void smc::SetLEDS(LEDState s1, LEDState s2, LEDState s3, LEDState s4)
{
    unsigned char msg[0x10];
    msg[0] = 0x99;
    msg[1] = 0x01;
    msg[2] = ((s1>>3) | (s2>>2) | (s3>>1) | (s4));    //Thanks unknown v2
    HalSendSMCMessage(msg, NULL);
}

//Usage:  temps contains the returned temperature values
//          temps[0] = CPU
//          temps[1] = GPU
//          temps[2] = EDRAM
//          temps[3] = MB
void smc::GetTemps(float *temps, bool celsius)
{
    unsigned char msg[0x10];
    unsigned char values[0x10];
    int i;

    memset(msg, 0x00, 0x10);
    memset(values, 0x00, 0x10);

    msg[0] = 0x07;

    HalSendSMCMessage(msg, values);

    for(i=0; i<4; i++)
        temps[i] = (values[i * 2 + 1] | (values[i * 2 +2] <<8)) / 256.0;       

    if(!celsius)
        for(i=0; i<4; i++)
            temps[i] = (9/5) * temps[i] + 32;
}


Y un ejemplo de su utilización

smc MeinSMC;
float * temperaturen;

MeinSMC.GetTemps(temperaturen,true);
//    temps[0] = CPU
//          temps[1] = GPU
//          temps[2] = EDRAM
//          temps[3] = MB
string temperaturenstring;
temperaturenstring = sprintfa("CPU: %.1f, GPU: %.1f , EDRAM: %.1f, MB: %.1f",temperaturen[0],temperaturen[1],temperaturen[2],temperaturen[3]);

console.Format("Temperaturen: %s\n",temperaturenstring);


console.Format("Setting LEDs... ");

MeinSMC.SetLEDS(RED,GREEN,RED,GREEN);
wait2s();
MeinSMC.SetLEDS(GREEN,RED,GREEN,RED);




Saludos.
No se si llego tarde pero en esta versión francesa han hecho funcionar los acentos del freestyle
chechill escribió:No se si llego tarde pero en esta versión francesa han hecho funcionar los acentos del freestyle
http://*el cielo* /review.php?id=18576&amp;NoSeed=1&amp;p=1

Edita eso ahora...
se pide por favor [sonrisa]
uno solo tiene intención de informar
He añadido la transición de las screenshot en el menú de juegos, os dejo las modificaciones.

FreestyleDash.h

Modificar el enumerador Timers añadiendo TM_TRANSS.

enum Timers {
   TM_LOADING,
   TM_OVERSCAN,
   TM_LOADTITLE,
   TM_LOADPREVIEW,
   TM_LOADSS1,
   TM_LOADSS2,
   TM_TRANSS,
   TM_LOADBACK,
   TM_CLOCK,
   TM_OVERLAPPED,
   TM_COPYPROGRESS,
   TM_COPYSPEED,
   TM_FORCECHECK,
   TM_OPERATIONDONE,
};


ScnGames.cpp

Buscar y modificar el siguiente código
    case TM_LOADSS1:
      {
         int curSel = m_list.GetCurSel();

         if (curSel >= items->nItems)
            return S_OK;

         ContentItem * item = items->pItems[curSel];

         if (item->i_SSCount > 0)
         {      
            wstring ss1 = datapath_x + L"artwork/" + item->imagefolder + L"/ss-1.jpg";
            DebugMsg("Using ss1 %s",ss1.c_str());
            m_ss1.SetImagePath(ss1.c_str());
            item->i_CurrSS = 1;
         } else {
            m_ss1.SetImagePath(L"file://game:/media/noss.png");
         }
         SetTimer(TM_LOADSS2,10);
      break;
      }
   // Load ss2
    case TM_LOADSS2:
      {
         int curSel = m_list.GetCurSel();

         if (curSel >= items->nItems)
            return S_OK;

         ContentItem * item = items->pItems[curSel];

         if (item->i_SSCount > 1)
         {      
            wstring ss2 = datapath_x + L"artwork/" + item->imagefolder + L"/ss-2.jpg";
            DebugMsg("Using ss2 %s",ss2.c_str());
            m_ss2.SetImagePath(ss2.c_str());
            item->i_CurrSS = 2;
         } else {
            m_ss2.SetImagePath(L"file://game:/media/noss.png");
         }
         SetTimer(TM_LOADBACK,10);
      break;
      }
   // Load ss2
    case TM_LOADBACK:
      if (UseBackgrounds)
      {
         int curSel = m_list.GetCurSel();

         if (curSel >= items->nItems)
            return S_OK;

         ContentItem * item = items->pItems[curSel];

         wstring background = datapath + L"artwork\\" + item->imagefolder + L"\\background.jpg";
         if (FileExists(background))
         {
            wstring background_x = datapath_x + L"artwork/" + item->imagefolder + L"/background.jpg";
            m_background.SetImagePath(background_x.c_str());
            m_background.SetShow(TRUE);
         }
         SetTimer(TM_TRANSS,4000);
         break;
      }
    case TM_TRANSS:
      {
         int curSel = m_list.GetCurSel();

         if (curSel >= items->nItems)
            return S_OK;

         ContentItem * item = items->pItems[curSel];

         if (item->i_SSCount > 2)
         {
            if (item->i_CurrSS >= item->i_SSCount)
            {   
               item->i_CurrSS = 1;
            } else {
               item->i_CurrSS++;
            }

            wchar_t buffer[2];
            _itow_s(item->i_CurrSS, buffer, 2, 10 );
            wstring nextSS = buffer;
            wstring ss = datapath_x + L"artwork/" + item->imagefolder + L"/ss-" + nextSS + L".jpg";
            DebugMsg("Using ss %s",ss.c_str());
            if ((item->i_CurrSS % 2) == 1)
               m_ss1.SetImagePath(ss.c_str());
            else
               m_ss2.SetImagePath(ss.c_str());
         }
         SetTimer(TM_TRANSS,4000);
         break;
      }
    }

void CScnGames::KillLoadingTimers()
{
   KillTimer(TM_LOADTITLE);
   KillTimer(TM_LOADPREVIEW);
   KillTimer(TM_LOADBACK);
   KillTimer(TM_LOADSS1);
   KillTimer(TM_LOADSS2);
   KillTimer(TM_TRANSS);
}


ContentList.h

Buscar
int i_SSCount;

Añadir
int i_CurrSS;


Para arrancar los vídeos pausados y despausarlos pulsan el mando analogico derecho (podeis cambiar el boton remplazando VK_PAD_RTHUMB_PRESS por la tecla que queráis, siempre que no se use por otra función).

ScnGames.cpp

Añadir
HRESULT CScnGames::OnKeyDown(XUIMessageInput *pInputData, BOOL& bHandled)
{
   // Press dpad down
   if ( pInputData->dwKeyCode == VK_PAD_RTHUMB_PRESS )
   {
      if ( m_video.IsPaused() )
         m_video.Pause(FALSE);
      else
         m_video.Pause(TRUE);
   }
   return S_OK;
}


Modificar
      // Load preview video
     case TM_LOADPREVIEW:
      if (UsePreviews)
      {
         int curSel = m_list.GetCurSel();

         if (curSel >= items->nItems)
            return S_OK;

         ContentItem * item = items->pItems[curSel];

         wstring preview = datapath + L"artwork\\" + item->imagefolder + L"\\preview.wmv";
         if (FileExists(preview))
         {
            m_video.SetShow(TRUE);
            m_videoback.SetShow(TRUE);

            if (xmvPlayer)
            {
               xmvPlayer->Release();
               xmvPlayer = NULL;
            }

            HRESULT hr = XMediaCreateXmvPlayerFromFile(pDevice,wstrtostr(preview).c_str(),&xmvPlayer);
            m_video.SetPlayer(xmvPlayer);
            pDevice->SetRenderState(D3DRS_VIEWPORTENABLE, TRUE);
            m_video.Pause(TRUE);

            SetTimer(TM_LOADSS1,10);
            break;
         }
         // if no preview video go straight to loading ss1
      }


ScnGames.h

Buscar
HRESULT OnNotifyPress( HXUIOBJ hObjPressed, BOOL& bHandled );

Añadir a continuación
HRESULT OnKeyDown( XUIMessageInput *pInputData, BOOL &bHandled);
Ya se que esto que voy a preguntar no está muy relacionado con lo que se está hablando ahora en el hilo, pero creo que me podréis ayudar.

Resulta que tenía todo perfectamente configurado, Freestyle 1.09 funcionando perfecto con FlashFXP. He actualizado el firm de mi router, y ahora no hay manera de conectar por FTP.

Cabe decir que la consola está conectada en red, y que puedo usar el TVersity para ver fotos y demás de mi PC en la consola, así que red tiene (evidentemente, internet no, jeje).

No se que puede estar fallando. Si alguien me puede ayudar se lo agradecería mucho.

gracias de antemano
chechill escribió:se pide por favor [sonrisa]
uno solo tiene intención de informar

Nah,si no es eso,con poner *el cielo*/algo creo que sirve,es por problemas de enlaces,no se pueden poner links a apps hechas con el SDK
Don't worry... el freestyle lleva codigo SDK?
pensaba que era 100% home made... si es así no habria problema en poner el enlace,no?

Igualmente al caso, se ha arreglado el tema de los acentos? porque los amigos francoises parece ser que lo han solucionado... se puede implementar en el freestyle que está rondando por aquí últimamente?
chechill escribió:Don't worry... el freestyle lleva codigo SDK?
pensaba que era 100% home made... si es así no habria problema en poner el enlace,no?

Igualmente al caso, se ha arreglado el tema de los acentos? porque los amigos francoises parece ser que lo han solucionado... se puede implementar en el freestyle que está rondando por aquí últimamente?


Desde k salio la version 1.09 van los acentos sin tocar nada tanto en el FSDindexer como en el FreestyleDash, asi que no entiendo que quieres modificar :S
Messiahs escribió:
chechill escribió:Don't worry... el freestyle lleva codigo SDK?
pensaba que era 100% home made... si es así no habria problema en poner el enlace,no?

Igualmente al caso, se ha arreglado el tema de los acentos? porque los amigos francoises parece ser que lo han solucionado... se puede implementar en el freestyle que está rondando por aquí últimamente?


Desde k salio la version 1.09 van los acentos sin tocar nada tanto en el FSDindexer como en el FreestyleDash, asi que no entiendo que quieres modificar :S



A mi no me funcionan los acentos con la 1.09. Hay que hacer algo especial?
Messiahs escribió:
chechill escribió:Don't worry... el freestyle lleva codigo SDK?
pensaba que era 100% home made... si es así no habria problema en poner el enlace,no?

Igualmente al caso, se ha arreglado el tema de los acentos? porque los amigos francoises parece ser que lo han solucionado... se puede implementar en el freestyle que está rondando por aquí últimamente?


Desde k salio la version 1.09 van los acentos sin tocar nada tanto en el FSDindexer como en el FreestyleDash, asi que no entiendo que quieres modificar :S


yo tengo al 1.09 y no lleva acentos, se come las vocales que lleven acento, simplemente desaparecen. Lo que digo es que en la version francesa aparecen las volcales con acento.
chechill escribió:
Messiahs escribió:
chechill escribió:Don't worry... el freestyle lleva codigo SDK?
pensaba que era 100% home made... si es así no habria problema en poner el enlace,no?

Igualmente al caso, se ha arreglado el tema de los acentos? porque los amigos francoises parece ser que lo han solucionado... se puede implementar en el freestyle que está rondando por aquí últimamente?


Desde k salio la version 1.09 van los acentos sin tocar nada tanto en el FSDindexer como en el FreestyleDash, asi que no entiendo que quieres modificar :S


yo tengo al 1.09 y no lleva acentos, se come las vocales que lleven acento, simplemente desaparecen. Lo que digo es que en la version francesa aparecen las volcales con acento.


Le has pasado el FSD indexer de la version 1.09? http://www.megaupload.com/?d=754YYT85
Oye, Espinete, Froggy, Messiahs, etc.. todas las modificaciones que vais consiguiendo como que pille GOD, las nuevas transiciones que ha puesto Espinete o el código de las temperaturas,

¿vais a compilarlo y colgarlo? Se agradecería mucho que añadierais un enlace al programa ya modificado y compilado.

Sino, ya me pondre yo, pero siempre me tomo las cosas con calma, así que ponerle un mes.

Por cierto, GRACIAS!!!! por todas estas modificaciones, me habeis dejado de piedra
loky2zero escribió:Oye, Espinete, Froggy, Messiahs, etc.. todas las modificaciones que vais consiguiendo como que pille GOD, las nuevas transiciones que ha puesto Espinete o el código de las temperaturas,

¿vais a compilarlo y colgarlo? Se agradecería mucho que añadierais un enlace al programa ya modificado y compilado.

Sino, ya me pondre yo, pero siempre me tomo las cosas con calma, así que ponerle un mes.

Por cierto, GRACIAS!!!! por todas estas modificaciones, me habeis dejado de piedra


Dios yo de modificar eso ni idea xD ahy no llego estoy aprendiendo pero va lento [fumando] . Por lo de las temperaturas y los GOD ya ahy por ahy xex modificados, lo de las transiciones no he visto a ver si ya k esta lo pruebo
Alguien tiene portadas de emuladores/apps para el freestyle?

Si fuerais tan amables de compartirlas......
chechill escribió:yo tengo al 1.09 y no lleva acentos, se come las vocales que lleven acento, simplemente desaparecen. Lo que digo es que en la version francesa aparecen las volcales con acento.



Los acentos salen con los skins que vienen con el Freestyle, con los otros (o por lo menos los que yo tengo) no salen.

Para BoyChaos: el problema de que no salgan las funciones de los botones y demás es a causa del skin del amigo JohnCrichton en su última versión, si pruebas alguna versión anterior sí salen.

Por cierto, qué raro que lleve tanto tiempo JohnCrichton sin pasarse por aquí y sin actualizar su skin para que aparezcan los acentos y las funciones de los botones... con lo que me gusta su skin.. TIDOS, ven TIDOS!!! [+risas]

También decir que estos problemas del skin vienen dados desde que salió la versión 1.09 del Freestyle, ya que el skin se hizo para la 1.08.


Salu2!!!
yo el problema lo tengo con la 1.09 y el indexer español con el skin por defecto. borre la carpeta fsdata y le pase el indexer y me siguen saliendo con los caracteres raros en vez de los acentos.
yurinet escribió:yo el problema lo tengo con la 1.09 y el indexer español con el skin por defecto. borre la carpeta fsdata y le pase el indexer y me siguen saliendo con los caracteres raros en vez de los acentos.


Pues no se xD estas usando la version 1.09 del FSD indexer tambien, no? Esta --> http://www.megaupload.com/?d=754YYT85

Lo que puedes hacer es abrir el Content.xml y mirar si estan los acentos si no estan pon alguno, guardas y abres el Freestyledash a ver si te sale si lo sigues sin ver metete en dafonts o cualquiera de fuentes te bajas una en ttf k soporte acentos y pruebas pero no se es raro a mi me funciono sin tener que tocar nada.
Messiahs escribió:
yurinet escribió:yo el problema lo tengo con la 1.09 y el indexer español con el skin por defecto. borre la carpeta fsdata y le pase el indexer y me siguen saliendo con los caracteres raros en vez de los acentos.


Pues no se xD estas usando la version 1.09 del FSD indexer tambien, no? Esta --> http://www.megaupload.com/?d=754YYT85

Lo que puedes hacer es abrir el Content.xml y mirar si estan los acentos si no estan pon alguno, guardas y abres el Freestyledash a ver si te sale si lo sigues sin ver metete en dafonts o cualquiera de fuentes te bajas una en ttf k soporte acentos y pruebas pero no se es raro a mi me funciono sin tener que tocar nada.



Ok. probare cuando llegue a casa. gracias.
Que bueno ya con transiciones y todo Gracias por el curro SPlNeTe.
Estaba tratando de poner lo de las temperaturas y la consola se queda totalmente bloqueada no se que ocurre pero bueno.

Otra cosa Nadie tiene problemas con el Indexer es que no salen las caratulas ni descripciones ni nada en la pestaña de juegos Xbox360 ya sean GOD o o juegos descomprimidos, descargar las descarga y todo pero no modifica el xml sin embargo si pongo para que los GOD salgan en la pestaña Xbox Live Arcade sale todo perfectamente.
a q te refieres con transiciones?
A ver si podeis resolverme mi duda, he pasado 2 juegos arcade al hd de la xbox y con el indexer y el freestyle los veo sin problemas, lo jodio es cuando paso un juego con el iso2god y lo paso a la consola, no me aparece por ningun lado, hago algo mal? en que directorio del disco duro debo meter los juegos de xbox 360?
Gracias por vuestra ayuda
Vale ya muestra las temperaturas.
Imagen
Añadir al proyecto smc.cpp - smc.h - smc_constants.h
Añadir al Skin en fichero Main.xui un elemento de texto y llamarlo Temperaturas
En smc.h
#include "tools.h"

Editar ScnMain.cpp
Incluir
#include "smc.h"


Buscar
hr = GetChildById( L"DateTime", &m_datetime );

añadir debajo
hr = GetChildById( L"Temperaturas", &m_Temperaturas);





añadir
string temp1()
{
   smc irsmc;
   float temps[4];
   int delta = 0;
   irsmc.GetTemps (temps,true);
   string mytemp;
   mytemp = sprintfaA("CPU: %0.1f GPU: %0.1f EDRAM: %0.1f MB: %0.1f",temps[0],temps[1],temps[2],temps[3]);
   return mytemp;
}


reemplazar CScnMain::OnTimer por
HRESULT CScnMain::OnTimer( XUIMessageTimer *pTimer, BOOL& bHandled )
{

    switch( pTimer->nId )
    {
    case TM_CLOCK:
      SetClock(m_date,m_time,m_datetime);
   case TM_TEMPS:
      
string mytemp;
   mytemp = temp1();
   
      m_Temperaturas.SetText (strtowstr(mytemp).c_str());
      break;
   }
    bHandled = TRUE;
    return S_OK;
}


Editar ScnMain.h


class CScnMain : public CXuiSceneImpl
{

protected:
    // Message map.
    CXuiControl btnXBox360Games;
    CXuiControl btnXBox1Games;
    CXuiControl btnXBoxLiveArcade;
    CXuiControl btnHomebrew;
   CXuiControl btnEmulators;
   CXuiControl btnFavourites;
   CXuiControl btnRecent;
   CXuiTextElement m_date;
   CXuiTextElement m_time;
   CXuiTextElement m_datetime;
CXuiTextElement m_Temperaturas;


Editar FreeStyleDash.h
enum Timers {
   TM_LOADING,
   TM_OVERSCAN,
   TM_LOADTITLE,
   TM_LOADPREVIEW,
   TM_LOADSS1,
   TM_LOADSS2,
   TM_TRANSS,
   TM_LOADBACK,
   TM_CLOCK,
   TM_TEMPS,
   TM_OVERLAPPED,
   TM_COPYPROGRESS,
   TM_COPYSPEED,
   TM_FORCECHECK,
   TM_OPERATIONDONE,
xq no colgais los archivos?
Ya se ha hablado el tema de colgar los archivos, ese programa contiene parte de codigo de microsoft por lo que no es legal colgarlo en este foro.
osea que se puede poner el código pero no compilarlo?
2319 respuestas
18, 9, 10, 11, 1247